none
wcf如何发不到IIS上? RRS feed

  • 问题

  • 通过vs2010 新建--wcf服务应用程序。

    <?xml version="1.0" encoding="utf-8"?>

    <configuration>

     

      <system.web>

        <compilation debug="true" targetFramework="4.0" />

      </system.web>

      <system.serviceModel>

        <services>

          <service name="WcfService1.Service1">

            <endpoint address="http://localhost/Service1.svc" binding="basicHttpBinding"

              bindingConfiguration="" name="ds" contract="WcfService1.IService1" />

          </service>

        </services>

        <behaviors>

          <serviceBehaviors>

            <behavior>

              <!-- 为避免泄漏元数据信息,请在部署前将以下值设置为 false 并删除上面的元数据终结点 -->

              <serviceMetadata httpGetEnabled="true"/>

              <!-- 要接收故障异常详细信息以进行调试,请将以下值设置为 true。在部署前设置为 false 以避免泄漏异常信息 -->

              <serviceDebug includeExceptionDetailInFaults="false"/>

            </behavior>

          </serviceBehaviors>

        </behaviors>

        <serviceHostingEnvironment multipleSiteBindingsEnabled="true" />

      </system.serviceModel>

     <system.webServer>

        <modules runAllManagedModulesForAllRequests="true"/>

      </system.webServer>

    </configuration>

    iis版本5.1
    然后在项目上点击右键--发布
    服务url            http://localhost
    网站/应用程序   默认网站

    下边两个勾都勾上了,然后发布成功

    在is上右键浏览   http://localhost/Service1.svc

    “/”应用程序中的服务器错误。

    如果在配置中将“system.serviceModel/serviceHostingEnvironment/multipleSiteBindingsEnabled”设置为 true,则需要终结点指定相对地址。如果在终结点上指定相对侦听 URI,则该地址可以是绝对地址。若要解决此问题,请为终结点“http://localhost/Service1.svc”指定相对 URI。

    2010年12月20日 10:25

答案

全部回复

  • 这个换一下,根据提示。换成空字符串,看看

    <endpoint address="" binding="basicHttpBinding"


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    Windows Azure中文技术论坛

    • 已标记为答案 zhzhzh 2010年12月20日 12:23
    2010年12月20日 11:39
    版主
  • 版主大人威武!果然是这样!能给我说下address有什么用吗?


    2010年12月20日 12:23
  • 版主大人威武!果然是这样!能给我说下address有什么用吗?



    address在终结点里,简单理解就是地址,终结点地址。

    你可以配置address为相对,也可以是全部完整格式的地址。当你有基地址时,这里可以使用相对地址,终结点的地址就是 基地址+相对地址。

    当你使用完整的地址格式,那终结点地址就不会使用 基地址+相对地址。

    IIS部署的时候,默认会有一个基地址Baseaddress,这个是根据你WCF服务程序的配置生成的。

    如果你打算提供完成的地址格式,但是这个完成的地址格式 和Baseaddress 不匹配,比如端口不一样,就会出错。

    address换成“”,目的就是使用默认的Baseaddress+“”。避免了你自己设置的和Baseaddress 不匹配的问题。


    Frank Xu Lei--谦卑若愚,好学若饥
    专注于.NET平台下分布式应用系统开发和企业应用系统集成
    Focus on Distributed Applications Development and EAI based on .NET
     

    老徐的网站】:http://www.frankxulei.com/

    微软WCF中文技术论坛
    微软WCF英文技术论坛

    Windows Azure中文技术论坛

    2010年12月20日 15:47
    版主