C# 托管在物理目录上下文中运行的IIS上的WCF服务

C# 托管在物理目录上下文中运行的IIS上的WCF服务,c#,wcf,iis,service,C#,Wcf,Iis,Service,我在IIS下运行的WCF服务有点问题。我的服务使用第三方库。此初始化库需要包含查询文件路径的配置文件。在IIS下运行此库无法处理查询文件的相对路径,即:。。。\Config\lib_query.txt等。据我所知,原因是该服务在do w3wp进程下运行。在自己的主机上甚至在单元测试中运行它都没有问题 有没有办法告诉IIS在不同的环境下运行?使用AppDomain。CurrentDomain。BaseDirectory等不是一个选项,因为我在这些LIB中没有权限。 到目前为止,我使用的是固定路径,

我在IIS下运行的WCF服务有点问题。我的服务使用第三方库。此初始化库需要包含查询文件路径的配置文件。在IIS下运行此库无法处理查询文件的相对路径,即:。。。\Config\lib_query.txt等。据我所知,原因是该服务在do w3wp进程下运行。在自己的主机上甚至在单元测试中运行它都没有问题

有没有办法告诉IIS在不同的环境下运行?使用AppDomain。CurrentDomain。BaseDirectory等不是一个选项,因为我在这些LIB中没有权限。
到目前为止,我使用的是固定路径,但我们正在转向分布式环境,不替换配置路径中的路径将是一个巨大的便利。

假设库使用相对路径,您可以将目录与应用程序所在的目录进行比较


看。您可以在global.asax的应用程序启动中执行此操作。

这通常意味着库供应商不会针对IIS进行测试,而且它也不是为IIS设计的。然后你应该找到另一个库或者强迫供应商提供一个解决方案。在不久的将来,我可以使用RESTAPI,但目前还不是一个选项。但在另一方面,如果我做了某事,例如在自宿主环境中,它正在工作,我应该期望在不同的宿主环境中它也能工作,但显然不行。我想我已经尝试使用Directory.SetCurrentDirectory()更改目录,但没有帮助。当然,我会尝试更多地使用它,并把它放在不同的地方。谢谢,应该有用。IIS在system32或inetsrv中运行,这就是相对路径最初不起作用的原因。尝试用你的基本目录硬编码的SetCurrentDirectory。我把它放在Global.asax中,做一些调整并使其工作。谢谢各位。当心。