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

Jan*_*nen 2 c# iis web-services

我正在调用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中是否有任何配置选项可以使其正常工作?

mar*_*c_s 8

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

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

  • +1.我同意.我还想补充一下(作为解释).无论你使用什么类型的应用程序.程序集(.NET中的.dll)始终加载到应用程序的内存空间中.因此,就程序集而言,它的"config"文件是应用程序的文件.对于ASP.NET应用程序,事情有点不同(但概念是相同的),因为ASP.NET应用程序也是有效的程序集并由工作进程加载.因此他们做了一些"调整",ASP.NET应用程序使用名为web.config的文件.而不是具有应用程序名称的配置文件. (4认同)