【问题标题】:Issues when deploying asp.net mvc app to iis将 asp.net mvc 应用程序部署到 iis 时的问题
【发布时间】: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


【解决方案1】:

(LocalDb)\v11.0 SQL Express,它仅在 Visual Studio 范围内可用。在您的生产服务器上,您应该使用真正的 SQL Server 实例。设置 SQL Server,最好在与您的网站运行的服务器不同的服务器上,然后将您的连接字符串更改为该服务器。

当您在 Visual Studio 中使用发布配置发布时,您实际上可以使用 Web.Release.config 转换将 Web.config 中的连接字符串自动更改为此。

【讨论】:

  • 天哪,它的克里斯普拉特! - 我也尝试过使用真实的 sqlserver 实例(不是 localdb)。最后我得到了 CREATE TABLE 权限被拒绝”(即使授予应用程序池权限,在 ssms 中创建用户,授予文件权限。我正在使用实体框架,所以它试图在数据库中创建自己的表。我想我我会尝试从我的 localdb 获取创建表脚本并将其放入新服务器中。当然,这样做时我的手指会交叉。
猜你喜欢
  • 1970-01-01
  • 2019-01-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-06-21
相关资源
最近更新 更多