(急切求助)WebService返回DataSet类型问题(在线等)

jscn123789abc 2009-06-21 04:43:52
大家好啊,向大家请教个问题:
写的返回DataSet类型的WebService在"调试环境下"可以运行,但是在IIS中浏览就有问题,
请大家帮忙看下,谢谢!
//***************************************
//WebService代码
using System.Data;
using System.Data.SqlClient;
using System.Configuration;

public class Srv0621 : System.Web.Services.WebService
{
public Srv0621 () {
//如果使用设计的组件,请取消注释以下行
//InitializeComponent();
}

[WebMethod]
public string HelloWorld() { //该方法可以正常调用
return "Hello boy";
}

[WebMethod]
public DataSet fun()
{ //该方法调用出错
//string constr = ConfigurationManager.ConnectionStrings["db001ConnectionString"].ToString();
string constr = ConfigurationSettings.AppSettings["db001ConnectionString"];
SqlConnection con = new SqlConnection(constr);
string sqlstr = "select * from t_a";
SqlCommand com = new SqlCommand(sqlstr, con);
SqlDataAdapter dpt = new SqlDataAdapter(sqlstr, con);
DataSet ds = new DataSet();
dpt.Fill(ds);

if (com.Connection.State != ConnectionState.Closed)
{
com.Connection.Close();
}

return ds;
}
}

<?xml version="1.0"?>
<configuration>
<appSettings>
<add key="db001ConnectionString" value="Data Source=ServerName;Initial Catalog=db001;Integrated Security=True">
</add>
</appSettings>
<system.web>
<compilation debug="true">
<assemblies>
<add assembly="System.Configuration.Install, Version=2.0.0.0, Culture=neutral,

PublicKeyToken=B03F5F7F11D50A3A"/></assemblies></compilation>
<authentication mode="Windows"/>
</system.web>
</configuration>
//***************************************
//在IIS中和在WinForm中调用时,错误提示信息如下:
System.Web.Services.Protocols.SoapException: 服务器无法处理请求。 ---> System.Data.SqlClient.SqlException: 用户 'ServerName\ASPNET' 登录失败。
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
在 System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlInternalConnectionTds.CompleteLogin(Boolean enlistOK)
在 System.Data.SqlClient.SqlInternalConnectionTds.OpenLoginEnlist(SqlConnection owningObject, SqlConnectionString connectionOptions, String newPassword, Boolean redirectedUserInstance)
在 System.Data.SqlClient.SqlInternalConnectionTds..ctor(DbConnectionPoolIdentity identity, SqlConnectionString connectionOptions, Object providerInfo, String newPassword, SqlConnection owningObject, Boolean redirectedUserInstance)
在 System.Data.SqlClient.SqlConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options)
在 System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject)
在 System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection)
在 System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory)
在 System.Data.SqlClient.SqlConnection.Open()
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
在 Srv0621.fun() 位置 d:\tmp111\WinCE_0621\Srv_0621\App_Code\Srv0621.cs:行号 34
--- 内部异常堆栈跟踪的结尾 ---
//***************************************
...全文
103 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jscn123789abc 2009-06-22
  • 打赏
  • 举报
回复
数据库密码为空时Integrated Security=True
用userid=;password=;替换可以么?谢谢。。。
jscn123789abc 2009-06-21
  • 打赏
  • 举报
回复
<add name="db001ConnectionString" connectionString="Data Source=ServerName;Initial Catalog=db001;Integrated Security=True"
providerName="System.Data.SqlClient" />

怎么修改啊,谢谢。。。
jscn123789abc 2009-06-21
  • 打赏
  • 举报
回复
工具-->SQL Server配置属性-->安全性
(1)身份验证选择"仅Windows";
(2)审核级别选择"无";
(3)启动服务帐户选择
"本帐户" 用户名
密码 密码

如何设置啊?
之前安装的时候并没有设置密码啊。。。
V68V6 2009-06-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wjq 的回复:]
问题是: <add name="db001ConnectionString" connectionString="Data Source=ServerName;Initial Catalog=db001;Integrated Security=True"
providerName="System.Data.SqlClient" />

你没有指定用户名,这样,.NET使用启动当前进程的帐号作为sql server的登录帐号,请在链接串里具体指定userid和password,并不要用Integrated Security=True方式登录。
[/Quote]

up

jf
jscn123789abc 2009-06-21
  • 打赏
  • 举报
回复
但是数据库没有设置用户名和密码啊。。。
wjq 2009-06-21
  • 打赏
  • 举报
回复
问题是: <add name="db001ConnectionString" connectionString="Data Source=ServerName;Initial Catalog=db001;Integrated Security=True"
providerName="System.Data.SqlClient" />

你没有指定用户名,这样,.NET使用启动当前进程的帐号作为sql server的登录帐号,请在链接串里具体指定userid和password,并不要用Integrated Security=True方式登录。
jscn123789abc 2009-06-21
  • 打赏
  • 举报
回复
在Web页面中读查询数据库数据也是可以的。。。。///////////////////////////////////////////////////
using System.Data.SqlClient;
public void GetData()
{
string constr = ConfigurationManager.ConnectionStrings["db001ConnectionString"].ToString();
SqlConnection con = new SqlConnection(constr);
string sqlstr = "select * from t_a";
SqlCommand com = new SqlCommand(sqlstr, con);
SqlDataAdapter dpt = new SqlDataAdapter(sqlstr, con);
DataSet ds = new DataSet();
dpt.Fill(ds);
this.GridView1.DataSource = ds.Tables[0];
this.GridView1.DataBind();

if (com.Connection.State != ConnectionState.Closed)
{
com.Connection.Close();
}
}
///////////////////////////////////////////////////
<?xml version="1.0"?>
<configuration>
<appSettings/>
<connectionStrings>
<add name="db001ConnectionString" connectionString="Data Source=ServerName;Initial Catalog=db001;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<compilation debug="true"/>
<authentication mode="Windows"/>
</system.web>
</configuration>
///////////////////////////////////////////////////
jscn123789abc 2009-06-21
  • 打赏
  • 举报
回复
//WinForm下直接实现public DataSet fun()该方法可以使用。。。。
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}

public DataSet fun()
{
//string constr = ConfigurationManager.ConnectionStrings["db001ConnectionString"].ToString();
string constr = ConfigurationSettings.AppSettings["db001ConnectionString"];
SqlConnection con = new SqlConnection(constr);
string sqlstr = "select * from t_a";
SqlCommand com = new SqlCommand(sqlstr, con);
SqlDataAdapter dpt = new SqlDataAdapter(sqlstr, con);
DataSet ds = new DataSet();
dpt.Fill(ds);

if (com.Connection.State != ConnectionState.Closed)
{
com.Connection.Close();
}
return ds;
}

//Test
private void button1_Click(object sender, EventArgs e)
{
DataSet ds1 = this.fun();
this.dataGridView1.DataSource = ds1.Tables[0];
}
}
////////////////////////////////////////////////////////
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="T002.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<appSettings>
<add key="db001ConnectionString" value="Data Source=ServerName;Initial Catalog=db001;Integrated Security=True"></add>
</appSettings>

<system.web>
<compilation debug="true"/>
<authentication mode="Windows"/>
</system.web>
<applicationSettings>
<T002.Properties.Settings>
<setting name="T002_Service_Srv0621" serializeAs="String">
<value>http://192.168.1.2/Srv0621/Service.asmx</value>
</setting>
</T002.Properties.Settings>
</applicationSettings>
</configuration>
lantianhf 2009-06-21
  • 打赏
  • 举报
回复
帮顶了

UP!

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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