在IIS中运行时找不到.dll.config文件

时间:2011-02-23 10:13:21

标签: c# web-services iis

我正在调用webservice,但找不到带有webservice绑定的.dll.config文件。 假设调用webservice的代码位于名为 webservicecall.dll 的DLL中,生成的配置文件是 webservicecall.dll.config 。 这两个文件都位于IIS(6.0), DefaultWebSite \ testserver \ bin

调用命令使用webservice时,出现错误,表明找不到配置文件。

为了测试WebService调用,我创建了一个控制台应用程序 TestWebServiceAccess.exe 并使用了相同的配置文件(只是将其重命名为 TestWebServiceAccess.exe.config )。这很好。

即使是“webservicecall.dll”中的单元测试也正确使用.dll.config文件,只是当整个东西在IIS中托管时它不起作用。

这是错误:

  

无法在ServiceModel客户端配置部分中找到引用合同“WEBSERVICE1”的默认端点元素。这可能是因为没有为您的应用程序找到配置文件,或者因为在客户端元素中找不到与此合同匹配的端点元素。

IIS中是否有任何配置选项可以让它运行起来?

2 个答案:

答案 0 :(得分:8)

.NET配置系统读取程序集的配置文件(.dll.config)。

您需要将配置放入主机应用程序的配置中 - 因为您在IIS中运行,您需要将配置放入web.config,以便.NET配置系统使用和解释它。

答案 1 :(得分:1)

IIS中的.config文件的文件名是web.config,它驻留(或应该驻留在)应用程序的根目录中。如果您的IIS上只有一个网站/ webservice(应用程序),则最有可能在您网站的根文件夹中找到web.config。在您的情况下,它也可以在\ testserver文件夹中找到。

子文件夹中的web.config文件可以包含覆盖根文件夹中web.config文件中的键的键。

如果您使用的是Visual Studio,则在向项目添加Web服务时,VS应自动编辑web.config文件。