C#WCF无法查看app.config
本文关键字:app config C#WCF | 更新日期: 2023-09-27 18:25:32
好的,这是我的场景。
我做了一个WCF库项目。已配置我的app.config文件。然后我创建了一个新的控制台应用程序。将我的WCF库项目添加到控制台应用程序中。然后我将配置文件复制到我的服务器控制台应用程序中。但是,当我运行控制台应用程序时,它会抛出一个异常,并基本上声明它看不到app.config文件。但是,app.config显然位于服务器控制台应用程序内部。我可以通过编程方式添加我的端点,并使服务正常工作。然而,这不是我的本意。是否有某种技巧可以让ServiceHost使用app.config,或者更重要的是让项目查看app.config?
我的app.config
<configuration>
<configSections>
</configSections>
<system.web>
<compilation debug="true" />
</system.web>
<system.serviceModel>
<services>
<service behaviorConfiguration="serviceBehavior" name="Services">
<endpoint address="CompanyService" binding="netTcpBinding" bindingConfiguration=""
name="NetTcpBinding" contract="Services.ICompany" />
<endpoint binding="mexHttpBinding" name="mex" contract="IMetadataExchange" />
<host>
<baseAddresses>
<add baseAddress="net.tcp://localhost:8732/Services/" />
</baseAddresses>
</host>
</service>
</services>
<behaviors>
<serviceBehaviors>
<behavior name="serviceBehavior">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
</configuration>
我的主机服务代码:
using (ServiceHost host = new ServiceHost(typeof(Company))) {
host.Open();
Console.WriteLine("Press <ENTER> to terminate the host service");
Console.ReadLine();
}
然后抛出这个异常:
Unhandled Exception: System.InvalidOperationException: Service 'Services.Company' has zero application (non-infrastructure) endpoints. This might
be because no configuration file was found for your application, or because no
service element matching the service name could be found in the configuration fi
le, or because no endpoints were defined in the service element.
当您将app.config文件复制到控制台应用程序时,您将如何命名它?需要遵守一些具体的规则。
如果控制台应用程序的可执行文件名为,例如"consoleap.exe",则app.config的名称必须为"consoleapp.exe.config"
问题是您调用了文件app.config,而不是您的programname.exe.config吗?
@Jaochim错误表明它正在寻找一个名为Services.Company的服务,而您的配置似乎将其归因于name="Services"。请尝试更改它。