我在 IIS7 中托管的多个网站中部署了一项 WCF 服务,有时在 VS2010 中部署了(开发环境)。
通常多个实例连接到同一个数据库,通常它不是只读访问的问题,但有时(比如在日志记录中)我需要唯一标识访问数据库的服务实例。
目前我通过在 web.config 中放置特殊属性来实现,稍后我将把它用作主键的一部分,但我确实觉得它不是理想的解决方案。
如果托管在 IIS 中,我会考虑站点名称;如果托管在 VS2010 中,我会考虑机器名称 + 端口。
问题来了:如何访问有关 WCF 服务部署位置的信息以及如何从已部署的服务内部以编程方式在 C# 中执行此操作?有可能吗?
感谢您的建议。 迈克尔
最佳答案
前几天有一个关于如何获取 WCF 服务器的 IP 地址的问题,用于日志记录。本主题可能有所帮助:How to get IP address of WCF web service
您还可以通过使用 System.Diagnostics.Process.GetCurrentProcess()
找出您的应用正在运行的进程来确定您是否在 IIS 中运行,并查看它是否是“w3svc. exe”,这是 IIS 应用程序池运行的方式。
关于c# - 如何访问有关 WCF 服务部署位置的信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6523642/