【发布时间】:2015-02-11 06:19:15
【问题描述】:
(程序的功能是上传Excel文件,将它们存储在数据库中,下载它们,搜索单个记录,并通过上传带有一些键的Excel表格并为每条记录填写信息来创建某些记录的发票提供。)
所以现在是部署的时候了。我认为这就像用 VS 发布并放在服务器上一样简单。男孩是我错了!我已经被困了一个星期,仍然无法让它在我的台式机或笔记本电脑上的 IIS 实例上完全运行,我在生产服务器上尝试了两次,但也失败了。
我的问题是,我必须采取哪些步骤才能让我开发的 MVC 应用程序在任何不一定有 Visual Studio 的计算机上工作?
我为发布它所采取的步骤:
App Pool:托管管道模式:集成; .Net 框架 v4.0.30319;进程模型标识:LocalSystem/Network Service(如果我在 SQL Management Studio 中授予它们权限,两者都可以工作)
连接字符串:开发时,Datasource=(LocalDB)\v11.0 和 AttachDBFilename=|DataDirectory|\myDB.mdf
<connectionStrings>
<add name="DefaultConnection" connectionString="Data Source=(LocalDb)\v11.0;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\PRICELISTDB.mdf" providerName="System.Data.SqlClient" />
<add name="ServiceableItemContext" connectionString="Data Source=(LocalDb)\v11.0; AttachDBFilename=|DataDirectory|\PRICELISTDB.mdf;Integrated Security=True;Connect Timeout=30" providerName="System.Data.SqlClient" />
<add name="SalesItemContext" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\PRICELISTDB.mdf;Integrated Security=True;Connect Timeout=30" providerName="System.Data.SqlClient" />
我也尝试过使用 Data Source=SQLEXPRESS 和 initialcatalog=Pricing。
我不断收到错误,要么找不到数据库,要么“数据库中的 CREATE TABLE 权限被拒绝”。我终于让它在我的笔记本电脑上工作,没有权限/安全问题,但它没有上传我的 excel 文件,它只是返回视图而不采取任何操作,所以我认为 IIS 需要设置为接受文件。 (Visual Studio 中的相同代码完美运行)
【问题讨论】:
-
首先,您是否确保存储网站的文件夹对IISUSR 具有完全访问权限? (或 IIS_USR 我忘了哪个)。其次,检查您在 connectionString 中设置的用户对数据库的用户访问权限。我自己不使用 MS_SQL,所以我无法提供更多帮助。
-
您需要单独尝试处理每个问题,然后在遇到困难时发布具体问题,我们无法为您提供单一的步骤来确保您没有问题,太多了涉及的变量。首先,如果您启用了
Integrated Security,那么您的 IIS 应用程序池用户需要数据库中的相关权限,或者使用 sql server 用户,您可以输入用户名并传入连接字符串。 -
oki,我按照@DanielCasserly 所说的去做(授予 iis 许可),然后找出个别问题。已经在数据库中提供了应用程序池 dbowner 架构。
标签: c# sql sql-server asp.net-mvc iis