尝试发布我的WCF服务以与Rest一起使用

时间:2014-05-12 16:08:51

标签: c# asp.net web-services wcf

我试图使用IIS发布我的Web服务,我的web.config似乎有问题。我想最终将我的Web服务发布到我拥有的Web主机上。我已经尝试发布普通文件系统并将这些文件上传到webhost但我似乎无法让我的service.svc响应。我想它是因为我的web.config这里是代码。如果您需要我的其他任何代码,请询问:D。就像一张纸条。当我使用Visual Studio 2012运行它们时,服务工作正常。此外,我是新手,这是我第一次尝试这样做。 :D

的Web.config

<configuration> 
  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" targetFramework="4.5" />
    <httpRuntime targetFramework="4.5"/>
  </system.web>
  <system.serviceModel>
    <services>
      <service name="HotelLock.Service1">
        <endpoint binding="webHttpBinding" contract="HotelLock.IService1" behaviorConfiguration="web">
        </endpoint>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <!-- To avoid disclosing metadata information, set the values below to false before deployment -->
          <serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
          <!-- To receive exception details in faults for debugging purposes, set the value below to true.  Set to false before deployment to avoid disclosing exception information -->
          <serviceDebug includeExceptionDetailInFaults="false"/>
        </behavior>
      </serviceBehaviors>
      <endpointBehaviors>
        <behavior name="web">
          <webHttp/>
        </behavior>
      </endpointBehaviors>
    </behaviors>
    <protocolMapping>
        <add binding="basicHttpsBinding" scheme="https" />
    </protocolMapping>    
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" > 
    </serviceHostingEnvironment>
  </system.serviceModel>
  <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <!--
        To browse web app root directory during debugging, set the value below to true.
        Set to false before deployment to avoid disclosing web app folder information.
      -->
    <directoryBrowse enabled="true"/>
  </system.webServer>
</configuration>

我将svc,web.config和带有dll的bin上传到我拥有的主机上,当我调用svc时我得到的是

ServiceHost Language="C#" Debug="true" Service="HotelLock.Service1" CodeBehind="Service1.svc.cs"

我似乎无法打电话给任何其他网址。

当我尝试使用IIS将我的服务用作localhost时,页面不会加载。我已经为iis提供了使用webconfig的权限。但我似乎无法得到正常的错误。我只是无法加载任何东西。

1 个答案:

答案 0 :(得分:0)

配置文件看起来不错。也许你应该检查你通过浏览器调用的链接。链接应如下所示:

http://www.yourdomain.com/ServiceName.ClassName.svc/UriTemplate

对于您的项目,我认为服务名称是HotelLock,类名是Service1。我不知道您的代码的UriTemplate,但您的界面(可能是IService.cs)应该有这些信息(例如[WebGet(UriTemplate =&#34; ListData&#34;)])最后,您的链接看起来像{ {3}}

我希望它有效。