ASP.. NET部署到IIS连接到localdb,但总是显示短暂的失败错误



我遇到这个问题已经一天多了,所以我决定寻求帮助。

IIS部署错误图片

我可以成功测试我的ASP。从Visual Studio在IIS Express上的。NET项目中,连接字符串工作得很好。此外,当运行位于IIS部署文件夹中的my program.exe时,它也可以完美地连接到localdb。

不幸的是,当使用我的项目的实时IP地址出现错误时,所以我的猜测是它连接到DB,但由于某种原因它无法检索或推送数据给它。

我尝试使用不同的DB连接方法,localdb,shared localdbSQL Express。没有工作。

我的连接字符串如下:
Server=(localdb)\MSSQLLocalDB;Database=PaymentConnect;Trusted_Connection=True;

我已经尝试将EnableRetryOnFailure添加到我的代码中,不幸的是错误仍然存在,在允许的尝试之后,它再次失败。

我确实没有将项目部署到IIS的经验,也没有ASP.NET的经验。如果有人能帮我,那就太好了!谢谢!

如果我忘记添加一些东西,请让我知道,以便我可以更新问题

不幸的是,这个错误是通用的,它只是说出了问题,可能是暂时的失败。但是我的问题实际上已经解决了,对于那些遇到同样问题的人来说,这里是如何解决它。

你应该下载并设置SQL Express,而不是使用localdb,它就像一个本地服务器,但与PC上的所有用户共享,你将需要它,因为当IIS试图打开你的localdb时,它实际上会作为自己的用户这样做,所以localdb是不同的。记得在应用程序上更改连接字符串,它应该看起来像这样:"DefaultConnection": "Server=.\SQLEXPRESS;Database=PaymentConnect;Trusted_Connection=True;"

之后,您需要在DB上创建一个安全用户,如下所示:

IIS APPPOOLnameOfMyAppPool

其中nameOfMyAppPool是您的网站正在使用的应用程序池的名称。

现在,我所做的,我不确定是否需要,是我给了这个安全用户sysadmin服务器角色,你会在创建这个用户时看到这一点,也在用户映射上,你选择你的DB并给它db_datareaderdb_datawriterdb_owner

完成这些操作后,转到您的DB并单击查看其属性,您将需要转到权限并为您刚刚创建的新用户赋予权限:

select delete insert update connect replication execute references control

我想再次提醒,这就是我解决问题的方式,我不确定这些中哪些是真正必要的或不是。

这应该能奏效。

相关内容

最新更新