WCF4服务主机无文件激活配置错误

时间:2013-03-17 01:46:25

标签: wcf configuration

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

使用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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

Rick看起来像你的怀疑是正确的。

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

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

答案 2 :(得分:0)

我收到此错误消息:

  

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

     

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

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