WCF端点地址问题

WCF端点地址问题,wcf,web-services,Wcf,Web Services,我创建了一个WCF web服务,并在IIS中创建了一个新站点(7)。我为http请求创建了一个新端口(8002)。我可以浏览到该网站,并得到典型的“你没有权限查看此目录…”,所以我知道该网站正在工作。但是,我将端点地址设置为“http://1.1.1.1:8002“在我的web.config中(其中1.1.1.1替换为我的实际IP地址)。当我使用“我获取”页面浏览到服务时,找不到错误。站点的根文件夹中有一个service.svc。设置有什么问题 下面是web.config文件(同样,1.1.1.

我创建了一个WCF web服务,并在IIS中创建了一个新站点(7)。我为http请求创建了一个新端口(8002)。我可以浏览到该网站,并得到典型的“你没有权限查看此目录…”,所以我知道该网站正在工作。但是,我将端点地址设置为“http://1.1.1.1:8002“在我的web.config中(其中1.1.1.1替换为我的实际IP地址)。当我使用“我获取”页面浏览到服务时,找不到错误。站点的根文件夹中有一个service.svc。设置有什么问题

下面是web.config文件(同样,1.1.1.1被替换为我的真实IP地址):


在IIS中托管时,无法在配置文件中控制服务的地址。您只能控制端点的相对地址-它是相对于.svc文件的


因此,如果您在站点中承载服务,则其地址为,并且端点中的address元素与此地址相对。但我希望您不会直接在站点中托管服务。您在站点中有一些应用程序,并且应用程序的名称是URL的一部分:实际上,用于嵌套服务的每个文件夹都是URL的一部分。

在IIS中托管时,您无法在配置文件中控制服务的地址。您只能控制端点的相对地址-它是相对于.svc文件的


因此,如果您在站点中承载服务,则其地址为,并且端点中的address元素与此地址相对。但我希望您不会直接在站点中托管服务。您在站点中有一些应用程序,应用程序的名称是URL的一部分:实际上,用于嵌套服务的每个文件夹都是URL的一部分。

站点文件夹的名称是什么?你试过点击1.1.1.1:8002//service.svc吗?网站文件夹的名称是什么?你试过点击1.1.1.1:8002//service.svc吗?我试过你关于添加/service.svc的建议,结果是一样的。浏览器显示找不到该页面。Service.svc位于站点的根目录中,而不是子文件夹。我甚至启用了网站浏览功能,可以看到Service.svc。当我点击它时,浏览器说找不到该网页。这很有效。现在的问题是,为什么地址必须为空?我总是看到一个地址列表。你能解释一下发生了什么吗?我试着在我的回答中解释一下-当在IIS中托管时,基址总是由IIS本身固定的。端点中的地址只是添加到该固定部分的相对部分(后缀)。我尝试了您关于添加/Service.svc的建议,结果相同。浏览器显示找不到该页面。Service.svc位于站点的根目录中,而不是子文件夹。我甚至启用了网站浏览功能,可以看到Service.svc。当我点击它时,浏览器说找不到该网页。这很有效。现在的问题是,为什么地址必须为空?我总是看到一个地址列表。你能解释一下发生了什么吗?我试着在我的回答中解释一下-当在IIS中托管时,基址总是由IIS本身固定的。端点中的地址只是添加到该固定部分的相对部分(后缀)。
  <?xml version="1.0"?>
    <configuration>
      <system.web>
        <compilation debug="true" targetFramework="4.0"/>
        <customErrors mode="Off"/>
      </system.web>
      <system.serviceModel>
        <bindings>
          <basicHttpBinding>
            <binding name="BasicBinding">
              <security mode="None">
                <transport clientCredentialType="None" />
              </security>
            </binding>
          </basicHttpBinding>
        </bindings>
        <services>
          <service behaviorConfiguration="WcfService.ServiceBehavior" name="WcfService.Service">
            <endpoint address="http://1.1.1.1:8002" binding="basicHttpBinding" bindingConfiguration="BasicBinding" contract="WcfService.IService">
            </endpoint>
            <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"/>
          </service>
        </services>
        <behaviors>
          <serviceBehaviors>
            <behavior name="WcfService.ServiceBehavior">
              <serviceMetadata httpGetEnabled="true"/>
              <serviceDebug includeExceptionDetailInFaults="true"/>
            </behavior>
          </serviceBehaviors>
        </behaviors>
      </system.serviceModel>
      <system.webServer>
        <modules runAllManagedModulesForAllRequests="true"/>
      </system.webServer>
    </configuration>