ConfigurationManager.AppSettings["conStr"]是啥意思?要详细解释~~O(∩_∩)O~
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ConfigurationManager.AppSettings["conStr"]是啥意思?要详细解释~~O(∩_∩)O~相关的知识,希望对你有一定的参考价值。
如果你的程序是b/s 那么 程序根目录下有一个Web.Config,这句代码就是获取该文件中appSettings节点下key="conStr" 这个节点的value值如果你的程序是c/s 那么就是获取App.Config文件中的这个值 参考技术A ConfigurationManager.AppSettings["strCon"]意思是指从web.config配置文件中获取key值为“strCon”的Value,举个例子:
web.config包含如下内容:
...
<connectionStrings>
<add name="strCon" connectionString="Data Source=192.168.10.6;User ID=sa;Password=sa;Unicode=True" providerName="System.Data.OracleClient"/>
<add name="strCon1" connectionString="Data Source=192.168.1.7;User ID=orcl;Password=orcl;Unicode=True" providerName="System.Data.OracleClient"/>
</connectionStrings>
...
sqlCon = new SqlConnection(ConfigurationManager.ConnectionStrings["strCon"].ConnectionString);
那么sqlCon 的值就是Data Source=192.168.10.6;User ID=sa;Password=sa;Unicode=True" providerName="System.Data.OracleClient了。本回答被提问者采纳 参考技术B appSettings与配置文件中connectonStings节点没有关系的。如果你的程序是b/s 那么 程序根目录下有一个Web.Config,这句代码就是获取该文件中appSettings节点下key="conStr" 这个节点的value值
如果你的程序是c/s 那么就是获取App.Config文件中的这个值
从命名来看。 conStr是存放数据库连接字符串的。一种写法就是你提问的这种
<appSettings>
<add key="conStr" value="server=服务器名;database=数据库名;uid=用户名;password=密码;"/>
</appSettings> 然后用
ConfigurationManager.AppSettings["conStr"]读取
另外一种就是 connectonStings节点的
connectionStrings>
<add name="conn"
connectionString="Dserver=服务器名;
database=数据库名;uid=用户名;password=密码" providerName="System.Data.SqlClient" />
</connectionStrings>
使用ConfigurationManager.ConnectionStrings["conn"] 获取
File.Exists() 在 IIS 上总是返回 false
【中文标题】File.Exists() 在 IIS 上总是返回 false【英文标题】:File.Exists() always returns false on IIS 【发布时间】:2013-05-19 19:20:12 【问题描述】:我使用 File.Exists() 检查的文件路径位于映射驱动器 (Z:\hello.txt
) 上。代码在调试环境中运行良好,但是在 IIS 中,它总是返回 false
var fullFileName = string.Format("0\\1", ConfigurationManager.AppSettings["FileName"], fileName);
if (System.IO.File.Exists(fullFileName))
为什么会这样,我该如何解决这个问题?
我已授予每个人对该映射驱动器的完全读/写权限
编辑:
我尝试通过\\192.168.1.12\Examples\Files\2.xml
删除文件,得到相同的结果。它不会在 IIS 上检测到文件,但在调试时工作正常
【问题讨论】:
【参考方案1】:您的 Web 应用程序在特定的安全上下文下运行,您需要找出这是什么上下文。如果是普通用户,以用户身份打开命令提示符(使用runas
工具),使用命令提示符映射所需的驱动器(一定要使用/persistent:yes
标志)
或者,您为什么不能只使用 UNC 路径 (\\serverName\shareName
) 并避免所有这些废话?
编辑:2013-05-27 要解决此问题,请根据您想要的任何应用程序池创建一个新的应用程序池。然后设置运行该池的标识,如随附的屏幕截图所示。
确保此用户对文件共享具有正确的权限,然后重新测试
【讨论】:
我刚试过。我正在尝试使用此路径删除我的文件 \\192.168.1.12\Examples\Files\2.xml - 结果相同。它适用于 VS 的调试,但不适用于托管在 IIS 中。 您的网站运行的应用程序池的标识是什么?【参考方案2】:我在使用网络映射驱动器时遇到过类似的问题,运行调试代码应用程序运行良好,运行发布版本应用程序时找不到文件。
如果文件存储在部署应用程序的同一台服务器上,我们通过存储映射驱动器的本地驱动器目录位置找到了解决方案,例如 Z:\files\
可能是 E:\folder\folder1\
如果应用程序部署在我们发现使用完整网络名称的单独服务器上,例如\\server1\folder\
我希望这对你有所帮助。
【讨论】:
我刚试过。我正在尝试使用此路径 \\192.168.1.12\Examples\Files\2.xml 删除我的文件 - 结果相同。它适用于 VS 的调试,但不适用于托管在 IIS 中。【参考方案3】:我认为您的应用程序没有“Z:”权限 是“Z:”网盘吗?
【讨论】:
用户LocalSystem
(NT AUTHORITY\SYSTEM) 没有网络访问权限 AFAIK。如果是这样,那么“您”(您的应用程序)必须冒充另一个用户。
因为ISS运行在你电脑上的user:SYSTEM上,所以无法访问Z:drive【参考方案4】:
也许你应该使用Path.DirectorySeparatorChar
【讨论】:
以上是关于ConfigurationManager.AppSettings["conStr"]是啥意思?要详细解释~~O(∩_∩)O~的主要内容,如果未能解决你的问题,请参考以下文章