web service 作为中间层出现的问题..

luohzad 2003-04-24 08:46:46
我在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。

这是为什么???还有生么地方需要设置吗??
希望高手赐教....谢谢...
...全文
59 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
flybird079 2003-05-07
  • 打赏
  • 举报
回复
你试着把WebServerice重新引用一次,如果重新引用可以解决问题,那至少说明程序无法正确的定位WebService的位置。
luohzad 2003-05-05
  • 打赏
  • 举报
回复
to lin9703(C#[MVP])
我在同一台机器上调用,,,url设置位localhost。还是出现同样的问题。。
lin9703 2003-05-03
  • 打赏
  • 举报
回复
如果要远程调用,你要保证,你的WebService要装在一台有固定IP的机器,且固定IP在广域上可见,而你的客户端在引用WebService 的时候,要动态调用, .url="",必须设置!
duebbin 2003-04-30
  • 打赏
  • 举报
回复
哈哈
老问题罗!
帮你up
luohzad 2003-04-29
  • 打赏
  • 举报
回复
谢谢 qieyj(温馨港湾) 的详细回答...
我的第三个问题...该如何解决......
期待回答......(是权限的问题吗?????)
qieyj 2003-04-29
  • 打赏
  • 举报
回复
数据库连接字符窜放在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();
luohzad 2003-04-28
  • 打赏
  • 举报
回复
starky 2003-04-24
  • 打赏
  • 举报
回复
关于1:我觉得设计一个好的接口是应当关注的;)
当中间层的代码处理数据时,如传递数据,或从数据存取类返回它,代码必须以某种形式表现数据。我们用ado.net 的时候,应该选择dataset还是 datareader 呢?或是其他的自定义的类型?

另外,内部访问数据的方式也要考虑:直接的方法、provider factory方法和data factory方法,采用哪一个 ;)
starky 2003-04-24
  • 打赏
  • 举报
回复

1.不太清楚;)

2.对 ASP.NET 配置文件的更改由系统自动检测并在不需要任何用户参与的情况下应用(即管理员不需要重新启动 Web 服务器或计算机即可使更改生效)。

3.需要 Windows 身份验证 --> HTTP 状态 401 看看iis的相关配置
laixiang 2003-04-24
  • 打赏
  • 举报
回复
关注!!!!
shawshanke 2003-04-24
  • 打赏
  • 举报
回复
关注!

12,165

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 Web Services
社区管理员
  • Web Services社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧