IIS上发布<servicehostingen环境时<servicehostingen环境multiplesitebindingsenabled =“true”>出错</servicehostingen>

时间:2012-03-28 10:47:36

标签: wcf iis

我有一个测试wcf服务,默认方法和web配置是:

 <system.web>
    <compilation debug="true" targetFramework="4.0"/>
</system.web>
<system.serviceModel>
    <behaviors>
        <serviceBehaviors>
            <behavior>
                <!-- To avoid disclosing metadata information, set the value below to false and remove the metadata endpoint above before deployment -->
                <serviceMetadata httpGetEnabled="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>
    </behaviors>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
<system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>

在本地IIS上,当我发布它时工作正常。但是当我尝试在远程IIS上发布时,我收到此错误:

  

描述:处理a期间发生错误   服务此请求所需的配置文件。请查看   以下具体错误详细信息并修改您的配置文件   适当。

     

分析程序错误消息:使用注册为的部分是错误的   allowDefinition ='MachineToApplication'超出应用程序级别。这个   虚拟目录未配置为错误可能导致错误   IIS中的应用程序。

Line 23:       </service>
Line 24:     </services>
**Line 25:        <serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>**
Line 26:  </system.serviceModel>
Line 27:  <system.webServer>

提前感谢。

3 个答案:

答案 0 :(得分:13)

我得到了解决方案:

在IIS中,如果应用程序确实是应用程序,而不是虚拟目录?图标应该看起来像地球,而不是文件夹的图标。如果没有,请将其转换为应用程序,右键单击文件夹select deploy,然后单击Application.Service运行

答案 1 :(得分:2)

确保在创建Web应用程序时浏览到实际的Web文件夹(包含Bin*.svcweb.config),而不是父文件夹。

答案 2 :(得分:-4)

如果您在框架4.0中只使用一个ENDpoint,那么写入multipleSiteBindingsEnabled =“False” serviceHostingEnvironment multipleSiteBindingsEnabled =“False”

使用它将运行