C# Web 服务:获取产品名称程序集和执行它的机器名称

Posted

技术标签:

【中文标题】C# Web 服务:获取产品名称程序集和执行它的机器名称【英文标题】:C# Web Service: Getting product name assembly and machine name where it is executed 【发布时间】:2018-04-16 01:41:30 【问题描述】:

我有一个用 C# 编写的 Web 服务,它发布到 IIS 上的服务器。

在此 Web 服务中,我使用一些参数构建了一个连接字符串。

有两个,“应用程序名称”和“工作站 ID”,我想用组装产品名称和执行 Web 服务的机器名称来设置它们。所以我这样做如下:

要设置“应用程序名称”,我使用 System.Windows.Forms.Application.ProductName 值 要设置“工作站 ID”,我使用 System.Environment.MachineName 值

在 Win 表单应用程序中,我使用这些值,但在谈论 Web 服务时它们是否正确?我的意思是,这些值是否在 Web 服务中以不同的方式提取?

另外为了避免使用 System.Windows.Forms 命名空间,有没有其他方法来获取 web 服务应用程序名称?

应用程序名称是指当您转到项目属性 => 应用程序 => 装配信息按钮 => 产品名称字段时从 Visual Studio IDE 出现的产品名称。

【问题讨论】:

“去做” - 做什么,究竟是什么?如果您执行您显示的语句,您将从服务器而不是客户端获取值。 @CodeCaster 我想从 IIS 上发布 Web 服务的服务器获取值。 【参考方案1】:

您可以将值存储在 Web 服务的 app.config 文件中。

Hi, You can store the values in app.config file of Web service.
<configuration>
  <appSettings>
    <add key="ApplicationName" value="ValueApplicationName" />
    <add key="WorkstationID" value="ValueWorkstationID" />
  </appSettings>
</configuration>
When you open the application that connects with web service, The web service can pass this value to the application. Use System.Configuration to read value from config file: 
string AppName = ConfigurationManager.AppSettings["ApplicationName"];

【讨论】:

我想在运行时获取关于 Web 服务的程序集的产品名称。

以上是关于C# Web 服务:获取产品名称程序集和执行它的机器名称的主要内容,如果未能解决你的问题,请参考以下文章

c# foreach 没有在循环中获取下一个 XElement 名称

Gearman 异步任务软件的介绍

什么是分布式部署?

在执行长时间运行的数据库任务时处理 Web 服务超时

C#获取本执行程序所在的当前路径

Unity3DUnity 脚本 ③ ( C# 脚本的执行入口函数 | 获取当前游戏物体及物体名称 | 获取游戏物体的 Transform 组件数据 | UnityEngine 命名空间简介 )