我做了个webservice,用来对数据库进行操作,但是估计是初始化class的时候出错,请大家看看

SphereEGO 2003-04-27 04:09:56
我的class:DataService 在程序中运行都经过测试正常
可是如果copy到webservice的asmx中,并且弄成webmethod,就会出现调用页面错误

估计是在运行到这里的时候出错

public DataService()
{
string conntStr = "Data Source=localhost; Integrated Security=SSPI;" + "Initial Catalog=myDB";
// string conntStr = "Server = localhost; User ID = EGO; Pwd = 796111; Database = myDB;";
myConnection = new SqlConnection(conntStr);
myCommand = new SqlCommand();
myCommand.Connection = myConnection;
myConnection.Open();
}

~DataService()
{
myConnection.Close();
}



怎么办啊
...全文
205 60 打赏 收藏 转发到动态 举报
写回复
用AI写文章
60 条回复
切换为时间正序
请发表友善的回复…
发表回复
SphinxEGO 2003-04-29
  • 打赏
  • 举报
回复
恩,你不介意我再问个问题吧

这个混合帐号认证 , 应该是and而不是or 吧

就是说

单window帐号的检测,就是检验(访问数据库的进程)的帐号

但是让人迷惑的是

如果是window和sql server帐号混合检测,反而是sql server帐号检验(访问数据库的进程)的帐号而window帐号检验sql自己是否在符合的计算机中运行。。。。。


这个东西到底是谁想出来的啊,好混淆啊
SphinxEGO 2003-04-29
  • 打赏
  • 举报
回复
吃早餐了!!!!
timmy3310 2003-04-29
  • 打赏
  • 举报
回复
不用谢,我自己都说糊涂了

再说,占用了你的贴子灌了一晚上

:)
timmy3310 2003-04-29
  • 打赏
  • 举报
回复
没错,这是对的

我刚刚给你说的不太准确,造成了你的误会,半夜了,有点糊涂

你的方式是Windows Only,验证访问进程的Windows帐号

而SQL Server and Windows方式Windows帐号是验证登陆计算机的帐号,并且验证连接串中的数据库用户
SphinxEGO 2003-04-29
  • 打赏
  • 举报
回复
好!
我弄成了混合模式后终于正常了,谢谢大哥!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
timmy3310 2003-04-29
  • 打赏
  • 举报
回复
在数据库的实例上面点右键,选择“属性”

然后选择“Security”那一页

中间有一个选项:
Authentication
SQL Server and Windows
Windows only
改成选择SQL Server and Windows
然后在下面的
Start and run SQL Server in the following account
的选项中选择:
System Account
SphinxEGO 2003-04-29
  • 打赏
  • 举报
回复
要见贵了,我在我的server的安全性中发现我根本不是server和windows混合认证,我是
仅windows身份认证,这个到底怎么回师?
SphinxEGO 2003-04-29
  • 打赏
  • 举报
回复
re:因为你的数据库的验证方式是Windows混合验证,也就是说既要验证连接数据库进程的Windows帐号的权限,也要验证数据库用户的权限


那我要在哪里把这个该死的混合认证改为单一的认证?
timmy3310 2003-04-29
  • 打赏
  • 举报
回复
你的第二个问题我没遇到过,估计是程序的问题
timmy3310 2003-04-29
  • 打赏
  • 举报
回复
因为你的数据库的验证方式是Windows混合验证,也就是说既要验证连接数据库进程的Windows帐号的权限,也要验证数据库用户的权限
SphinxEGO 2003-04-29
  • 打赏
  • 举报
回复
ptw:

问个小问题,我经常(几率是50%),运行一个win form程序的时候进入无限等待的状态(就是form根本出不来,停留在debug界面而不出现程序界面),解决的方法是按 restar 才能正常

此是为何?
SphinxEGO 2003-04-29
  • 打赏
  • 举报
回复
这样让我有点混淆

1:我的aspnet帐户虽然没有登陆的权限,可是帐户EGO 是有的
为什么我用
"Server = SPHERE; User ID = EGO; Pwd = 796111; Database = myDB;";
就是连接不上

2:当我设置了aspnet帐户后
没法在属性中设置为 sql server 身份验证, 这个是为什么呢
而且这样的话,就是说希望用aspnet的帐户访问数据库
可是connection string 应该怎么写, 我的目的是让它作为个webservice也能工作
timmy3310 2003-04-29
  • 打赏
  • 举报
回复
好地...
SphinxEGO 2003-04-29
  • 打赏
  • 举报
回复
我让aspnet当了system administrators
并且让它能访问我的数据库myDB
还让它有了public和db-owner

先试试先
timmy3310 2003-04-29
  • 打赏
  • 举报
回复
对,就是这个原因,因为你的SQL Server设置了Windows帐户登陆模式,而ASPNET帐户没有登陆权限
timmy3310 2003-04-29
  • 打赏
  • 举报
回复
或者你把ASP.Net应用程序改在系统用户下跑也可以

方法是在系统盘:\WINDOWS\Microsoft.NET\Framework\v1.0.3705\CONFIG
下,找到machine.config,打开,找到<processModel这个配置节,把其中的userName="MACHINE"改为:userName="SYSTEM"就行了
SphinxEGO 2003-04-29
  • 打赏
  • 举报
回复
我用了try来看
返回的信息是
{"用户 'EGO' 登录失败。原因: 未与信任 SQL Server 连接相关联。" }
timmy3310 2003-04-29
  • 打赏
  • 举报
回复
你的ASP.Net应用程序是在这个帐号下运行的,这个帐号是安装.Net Framework的时候添加的Windows系统用户,这个帐号的权限比较小

你可以这样,打开你的Sql企业管理器
在左边的菜单中,找到“Security”那一项,下面有个Login子项,打开它
在右边你可以点击鼠标右键,选择“New Login”,然后出来一个对话框,上面有一个"...",点击它会出来一个选择用户的对话框,然后选择本机的ASPNET用户,点“Add”,在点OK,然后你就可以给它授权了
SphinxEGO 2003-04-29
  • 打赏
  • 举报
回复
到底ASPNET这个是什么帐号,我从来就没看到过这么个帐号啊
timmy3310 2003-04-29
  • 打赏
  • 举报
回复
出了什么错?

是不是说ASPNET这个帐号登录失败
加载更多回复(40)

110,533

社区成员

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

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

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