1

嗨,伙计们真的很感激能解决这个问题,这让我很生气。

使用 VS2010 SP1 + .Net 4.0 + IIS 7.5 Express。

一个旨在托管 WCF 服务的简单 Web 项目会无缘无故地引发配置异常。Host 是一个使用无文件激活的空 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);
    }
}

网页配置

<?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

4

3 回答 3

1

奇怪的。我只是复制了你的 xml 并粘贴到我的项目中,它工作得很好。也许您的文件中有隐藏字符????尝试将其剪切并粘贴到记事本中,然后将其从记事本复制回新的 web.config 文件中。

于 2013-03-17T03:54:33.380 回答
0

我有这个错误信息:

说明:处理服务此请求所需的配置文件期间发生错误。

解析器错误消息:无法识别的元素。

我的解决方案是将我的网站设置为 IIS 应用程序,并将应用程序池设置为具有集成托管管道模式的 4.0 框架。

于 2013-09-18T16:35:26.000 回答
0

瑞克看起来你的怀疑是正确的。

我从头开始重新输入配置文件并解决了问题。

在这种情况下,IIS 应该产生一个描述性错误,只看到“无法识别的元素”会产生误导。

于 2013-03-17T14:43:51.397 回答