我有一个测试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>
提前感谢。
答案 0 :(得分:13)
我得到了解决方案:
在IIS中,如果应用程序确实是应用程序,而不是虚拟目录?图标应该看起来像地球,而不是文件夹的图标。如果没有,请将其转换为应用程序,右键单击文件夹select deploy,然后单击Application.Service运行
答案 1 :(得分:2)
确保在创建Web应用程序时浏览到实际的Web文件夹(包含Bin
,*.svc
和web.config
),而不是父文件夹。
答案 2 :(得分:-4)
如果您在框架4.0中只使用一个ENDpoint,那么写入multipleSiteBindingsEnabled =“False” serviceHostingEnvironment multipleSiteBindingsEnabled =“False”
使用它将运行