我在web service方面是个初学者,希望大家赐教...
1---利用web service作为中间层,其中关连接数据库的语句一般放在哪里?
放在web service中的Web.config中吗?
还是做成属性比较好?
2---不知道web service中如果更改web.config中的配置,是否还需要重新生成.
客户端要重新引用?
3---很奇怪的问题:我在家里用web service来接收的返回值dataset没有问题,客户端运行没有一点问题.可是拷贝到办公室来,一执行就出现以下的错误:
"请求因 HTTP 状态 401 失败:Access Denied。 "
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该 错 误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Net.WebException: 请求因 HTTP 状态 401 失败:Access Denied。
这是为什么???还有生么地方需要设置吗??
希望高手赐教....谢谢...
1.不太清楚;)
2.对 ASP.NET 配置文件的更改由系统自动检测并在不需要任何用户参与的情况下应用。
3.需要 Windows 身份验证 --> HTTP 状态 401 看看iis的相关配置
数据库连接字符窜放在web.config中比较好,方便移植。不需要重新编译,也不需要重新引用。
至于你的问题,就是数据操作的问题,本质上就是数据库连接不科学。应该放在web.config中,具体如下:
在asp.net中的WEB程序的设置中我们必须用到Web.config来存储数据库连接字.事实上这是个
很好的做法,因为可以省去我们很多的麻烦还可以帮助我们避免不必要的错位,是的很多情况下
我就是这样做.它通过XML来记录这些信息.具体的是在<appSettings>....</appSettings>这个
标记中来记录的.这里请看一个ORACLE的例子如下:
<appSettings>
<add key="ORACLEConnectionString" value="Provider=OraOLEDB.Oracle.1;
Persist Security Info=False;Password=blah;User ID=greg;Data Source=sph;" />
<add key="SQLConnectionString" value="data source=SQL1;initial catalog=ID_V;
integrated security=SSPI;persist security info=False;workstation id=TH03D374;
packet size=4096"/>
<appSettings>
而在你的应用程序中你只要这样写,就可以了,如下:
string conn = ConfigurationSettings.AppSettings["ORACLEConnectionString"];
OleDbConnection myConnection = new OleDbConnection(conn);
很轻松是吗?不必每次都输入同样的连接字,也不要记住那些讨厌的信息了,只需要起一个好记的
名字就可以.
好了下面我在来给出其他的一些连接字
MYSQL的连接字:
ConnectionString = "Data Source=localhost;" +
"Database=mySQLDatabase;" +
"User ID=myUsername;" +
"Password=myPassword;" +
"Command Logging=false";
OLE DB的:
IBM AS/400 OLE DB 的
VB.NET
Dim oOleDbConnection As OleDb.OleDbConnection
Dim sConnString As String = _
"Provider=IBMDA400.DataSource.1;" & _
"Data source=myAS400DbName;" & _
"User Id=myUsername;" & _
"Password=myPassword"
oOleDbConnection = New OleDb.OleDbConnection(sConnString)
oOleDbConnection.Open()
JET OLE DB 的
VB.NET
Dim oOleDbConnection As OleDb.OleDbConnection
Dim sConnString As String = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\myPath\myJet.mdb;" & _
"User ID=Admin;" & _
"Password="
oOleDbConnection = New OleDb.OleDbConnection(sConnString)
oOleDbConnection.Open()
Oracle OLE DB 的
VB.NET
Dim oOleDbConnection As OleDb.OleDbConnection
Dim sConnString As String = _
"Provider=OraOLEDB.Oracle;" & _
"Data Source=MyOracleDB;" & _
"User ID=myUsername;" & _
"Password=myPassword"
oOleDbConnection = New OleDb.OleDbConnection(sConnString)
oOleDbConnection.Open()
SQL Server OLE DB 的
VB.NET
Dim oOleDbConnection As OleDb.OleDbConnection
Dim sConnString As String = _
"Provider=sqloledb;" & _
"Data Source=myServerName;" & _
"Initial Catalog=myDatabaseName;" & _
"User Id=myUsername;" & _
"Password=myPassword"
oOleDbConnection = New OleDb.OleDbConnection(sConnString)
oOleDbConnection.Open()
Sybase ASE OLE DB 的
VB.NET
Dim oOleDbConnection As OleDb.OleDbConnection
Dim sConnString As String = _
"Provider=Sybase ASE OLE DB Provider;" & _
"Data Source=MyDataSourceName;" & _
"Server Name=MyServerName;" & _
"Database=MyDatabaseName;" & _
"User ID=myUsername;" & _
"Password=myPassword"
oOleDbConnection = New OleDb.OleDbConnection(sConnString)
oOleDbConnection.Open()
SQL Server在System.Data.SqlClient
SqlConnection oSQLConn = new SqlConnection();
oSQLConn.ConnectionString = "Data Source=(local);" +
"Initial Catalog=mySQLServerDBName;" +
"Integrated Security=SSPI";
oSQLConn.Open();
哈哈
老问题罗!
帮你up