嗨,伙计们真的很感激为此解决这个问题让我很生气。
使用VS2010 SP1 + .Net 4.0 + IIS 7.5 Express。
用于托管WCF服务的简单Web项目会在没有明显原因的情况下抛出配置异常。主机是使用无文件激活的空Web应用程序。
基本如下:
namespace MyWCFServices
{
public class HelloWorldService: IHelloWorldService
{
public string GetMessage(string name)
{
return string.Format("Hello world from {0}!", name);
}
}
[ServiceContract]
public interface IHelloWorldService
{
[OperationContract]
string GetMessage(string name);
}
}
的Web.config
<?xml version="1.0"?>
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<system.serviceModel>
<serviceHostingEnvironment >
<serviceActivations>
<add relativeAddress="HelloWorldService.svc"
service="MyWCFServices.HelloWorldService"/>
</serviceActivations>
</serviceHostingEnvironment>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true"/>
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
例外:
>应用程序中的服务器错误。配置错误
描述:处理为此请求提供服务所需的配置文件时发生错误。请查看下面的具体错误详细信息并相应地修改配置文件。
分析器错误消息:无法识别的元素。
来源错误:
Line 3: <system.web>
Line 4: <compilation debug="true" targetFramework="4.0" />
Line 5: </system.web>
Line 6: <system.serviceModel>
Line 7: <serviceHostingEnvironment >
---编辑:
IIS论坛上的同样问题:http://forums.iis.net/t/1180211.aspx/1
答案很差:'也许iis-express不支持无文件激活'。
有人能提供更好的答案吗?
干杯, AMAX
答案 0 :(得分:1)
奇怪。我jus复制你的xml并粘贴到我的项目中,它运行得很好。也许你的文件中有一个隐藏的字符????尝试将其剪切并粘贴到记事本中,然后将其从记事本复制回新的web.config文件。
答案 1 :(得分:0)
Rick看起来像你的怀疑是正确的。
我从头开始重新配置配置文件,问题解决了。
在这种情况下,IIS应该产生描述性错误,只是看到“无法识别的元素”会产生误导。
答案 2 :(得分:0)
我收到此错误消息:
描述:处理a期间发生错误 服务此请求所需的配置文件。
分析器错误消息:无法识别的元素。
我的解决方案是将我的网站设置为IIS应用程序,并将应用程序池设置为具有集成托管管道模式的4.0框架。