网络.配置问题

本文关键字:问题 配置 网络 | 更新日期: 2023-09-27 17:55:07

我有一个关于MS webservices和web的问题。配置配置。

我有一个解决方案,里面有两个项目:

    Webservice ws_A
  • 网站web_A

我的网站连接到我的网站与"Web参考"从Visual Studio。我的web服务连接到我的数据库通过:

public static SqlConnection sqlConn = new SqlConnection(myString);

在我的webservice中,我从webservice web检索一个connectionstring。用这个方法配置:

String sa = ConfigurationManager.ConnectionStrings["bdd"].ConnectionString;

我通过网站(webrereferences)调用webservice,并从中检索一些信息。

但是为了在webservice中检索字符串,我需要在web.config中声明这个字符串。这是不符合逻辑的,因为只有web服务需要这个字符串才能在数据库中保存数据。

如果我没有在web中声明字符串。配置,我有一个nullReferenceException在webservice.

有人知道这个问题和解决方案,以避免把ConnectionString在网站?它一定不知道数据库的存在!

编辑:要使用我的web服务,我在网站中这样做:

WebService1.WS_A webservice = new WebService1.WS_A();

网络.配置问题

如果我理解你的意思,那目前是不可能的。该网站实际上托管了web服务。因此,您需要在网络中进行所有配置。网站的配置

如果你不希望网站有到数据库的连接字符串,此时你需要创建一个单独的项目来承载web服务。然后,您可以在单独的项目中配置数据库连接,而第一个网站将完全不知道它。

在这一点上,你将真正使用一个web服务,而不是创建一个花哨的服务,它是自托管的,并且不购买任何东西超过一个简单的类。

这是正常的行为,因为web服务将在web应用程序的上下文中运行,因此它将访问web应用程序的配置文件。
同样,如果你有一个连接到数据库的数据访问层,你可以使用web应用程序或windows应用程序或控制台应用程序或…,因此数据访问将访问在其上下文中运行的项目的配置文件。

每个项目只能访问自己的配置资源,不能访问其他项目的配置资源。所以,如果你需要用一个连接字符串实例化你的web服务(不知道为什么这是必要的,但我离题了…)从你的网站使用存储的连接字符串,然后连接字符串需要作为一个资源的网站可用。

我仍然不确定为什么你有必要用连接字符串来调用你的web服务,因为我使用ASMX和WCF服务,我从来没有在客户端代理上提供连接字符串来调用服务。

然而,我必须承认,我对。net中web服务的各种配置/设置选项的经验相对有限,所以我绝不排除在您的情况下可能需要使用连接字符串实例化客户端代理的事实。