使用LocalDB部署Asp.Net MVC网站时遇到的问题
首先一句话介绍LocalDB。LocalDB是SQLServer的文件数据库,类似于SQLite。它拥有SQLServer的绝大部分功能,简单易用。但部署LocalDB到生产系统是不推荐的。本文部署是一个内部微系统,数据库仅仅只用来做一个最基本的用户认证而不做其他。基于此,决定直接试用LocalDB部署。
之前对LocalDB并不了解,虽然说其类似于SQLite,但SQLite是 一个生产用数据库,而LocalDB更像是基于体验的。系统经过基本调试、验证后,直接试用Visual Studio发布到远程的Windows 2008 SP1系统。打开网站,网站报错。
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible.
Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local
Database Runtime error occurred. Cannot create an automatic instance. See the Windows Application event log for error details.
经过搜索,在StackOverflow以及MSDN上都有相关的描述。主要是LocalDB与Full IIS应用不兼容,需要按照某一个补丁,进行额外设置。我不确定最新的IIS是否已经兼容,至少在Windows 2008 Serve R2上的IIS版本不兼容。在Using LocalDB with Full IIS, Part 1: User Profile[1]一问中有更加详细的描述。按照其Part1的设置,网站依然没有跑起来。在Windows 7 SP1 causes IntelliTrace Collection to fail on IIS[2]提到了不兼容的补丁信息,以及如何解决。
着急之下,直接在服务器上安装SQLServer Express。如果LocalDB不建议部署,准备直接迁移到Express。在一些参考上,又提到SQL Server Runtime,可能是没有安装Express的原因。安装完SQLServer Express,网站依然无法正常工作。在下载Express时,看到还有一个下载选项为CHS\x64\SqlLocalDB.msi 。可能此程序才是LocalDB的Runtime。遂卸载 SQLServer Express,安装SQlLocalDB。再次运行网站,错误信息变为如下:
//大概是这个意思
找不到SQLServer进程
无法启动实例
看来LocalDB还需要与SqlServer Express协同工作。安装好之后,再次启动网站,错误依旧。
A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance
name is correct and that SQL Server is configured to allow remote connections. (provider: SQL Network Interfaces, error: 50 - Local Database Runtime error occurred. 在 LocalDB
实例启动期间出错: 无法启动 SQL Server 进程。
)
在[1][2]中提到还需要设置IIS的应程序池信息,之前没有改变是因为我以试用Administrator身份运行此程序。按照[1][2]的方法,增加应用程序池设置。
<add name="ASP.NET v4.0" autoStart="true" managedRuntimeVersion="v4.0">
<processModel identityType="SpecificUser" userName="administrator" password="**********" loadUserProfile="true" setProfileEnvironment="true" />
</add>
本Web App主要进行服务器管理,与操作系统(Win32 Api)交互较多,部分Api需要很高权限。在以上设置中增加了loadUserProfile="true" setProfileEnvironment="true" ,赋予程序池读取用户配置、环境参数的能力。重新启动应用程序池,App正常运行。
回过头来看,如果要部署LocalDB到IIS 可以参考Deployment of SQL Express LocalDB on IIS[3]。就此次实践来说,大概要经过这么几部:
- 环境为Widnows 2008 R2
- 需要安装SQL Server Express,安装SqlLocalDB.
- 需要配置C:\Windows\System32\inetsrv\config\applicationHost.cof,赋予应用程序池读取用户数据、环境数据的信息。
网站开始正常工作了,可本地调试的LocalDB的文件并不能复用,必须新建否则会报错。内置的管理员账户没有了,数据如何导入LocalDB呢?
参考:
[1]Using LocalDB with Full IIS, Part 1: User Profile, https://blogs.msdn.microsoft.com/sqlexpress/2011/12/08/using-localdb-with-full-iis-part-1-user-profile/
[2]Windows 7 SP1 causes IntelliTrace Collection to fail on IIS, https://support.microsoft.com/zh-cn/kb/2547655
[3]Deployment of SQL Express LocalDB on IIS, https://blogs.msdn.microsoft.com/gaurav/2013/12/21/deployment-of-sql-express-localdb-on-iis/
[3]Stack Overflow上的提问, http://stackoverflow.com/questions/26248293/sql-network-interfaces-error-50-local-database-runtime-error-occurred-canno
使用LocalDB部署Asp.Net MVC网站时遇到的问题的更多相关文章
- 阿里云 Windows Server 2012 r2 部署asp.net mvc网站 平坑之旅
做了多年的Web开发工作,网站部署也不在话下,可每次部署却并不是十分顺利,将本次在阿里云服务器上部署asp.net mvc网站遇到的问题记录如下. 平台是阿里云ECS,操作系统是 Windows Se ...
- IIS部署asp.net mvc网站
iis配置简单的ASP.NET MVC网站编译器:VS 2013本地IIS:IIS 7操作系统:win 7MVC版本:ASP.NET MVC4sql server版本: 2008 r2 打开VS 20 ...
- IIS 7.5 部署ASP.Net MVC 网站
請務必註冊 ASP.NET 4.0:若是 32 位元則是 %WINDIR%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -ir 1.首先确定已经安 ...
- 利用Powershell自动部署asp.net mvc网站项目 (一)
这一篇中我们会写一些关于自动化部署的代码.我们会使用 Powershell 书写这类代码. 你将发现这篇文章中涉及的东西非常具体,有的要求甚至相当苛刻且可能不具有通用性.这是因为部署从来都是跟环境打交 ...
- jexus部署ASP.NET MVC网站
1.新建项目,我这里新建的空项目中的MCV 2.用nuget删除这两个类库 Microsoft.CodeDom.Providers.DotNetCompilerPlatform Microsoft.N ...
- 【转载】Asp.Net MVC网站提交富文本HTML标签内容抛出异常
今天开发一个ASP.NET MVC网站时,有个页面使用到了FCKEditor富文本编辑器,通过Post方式提交内容时候抛出异常,仔细分析后得出应该是服务器阻止了带有HTML标签内容的提交操作,ASP. ...
- 【转载】 Asp.Net MVC网站提交富文本HTML标签内容抛出异常
今天开发一个ASP.NET MVC网站时,有个页面使用到了FCKEditor富文本编辑器,通过Post方式提交内容时候抛出异常,仔细分析后得出应该是服务器阻止了带有HTML标签内容的提交操作,ASP. ...
- 总结一下ASP.NET MVC 网站的部署问题
总结一下ASP.NET MVC 网站的部署问题 近日,准备把MVC建了一个新的测试站点部署到IIS上面,结果没想到出现了一系列的问题和错误,准备记录一下. 第一个问题,就是如何将MVC的站点部署到II ...
- Linux(CentOS)中使用Mono+jexus部署Asp.net4.5网站
一.效果: 二.安装步骤: 1.安装系统CentOS,我这是用CentOs7测试的. 2.接下来安装libgdiplus.Mono.Jexus有问题可以参考安装工具的官网: Libgdiplus下载官 ...
随机推荐
- Ubuntu 16.04安装汇编编译器NASM
NASM支持intel语法. 安装过程: 1.通过二进制包方式 下载: http://www.nasm.us/pub/nasm/releasebuilds/2.13/ 如果要下载其它版本可以把地址靠前 ...
- RESTFUL 和SOA初探
这篇文章是转载的,restful简单的说就是url明确的指向资源.soa还不好用自己的话解释,但明显不是这样,好吧,我自己的理解就是soa就是访问网站的一个接口.以访问一个blog list为例子, ...
- 最简单的视音频播放演示样例7:SDL2播放RGB/YUV
===================================================== 最简单的视音频播放演示样例系列文章列表: 最简单的视音频播放演示样例1:总述 最简单的视音频 ...
- ZOJ 3675 Trim the Nails(bfs)
Trim the Nails Time Limit: 2 Seconds Memory Limit: 65536 KB Robert is clipping his fingernails. ...
- C++学习之多重继承与虚继承
一.多重继承 我们知道,在单继承中,派生类的对象中包含了基类部分 和 派生类自定义部分.同样的,在多重继承(multiple inheritance)关系中,派生类的对象包含了每个基类的子对象和自定义 ...
- html切换效果
1. 使用方式 <meta HTTP-EQUIV="Page-Enter" CONTENT="revealtrans(duration=1.0, transitio ...
- cocos2dx 编译时间长问题
{ F:\cocos2dx\cocos2d-x-3.7.1\templates\cpp-template-default 彻底解决方式 为把cocos的模版项目编译好(详细是所有生成好并清理Hello ...
- hdu 5325 Crazy Bobo dfs
// hdu 5325 Crazy Bobo // // 题目大意: // // 给你一棵树,树上每一个节点都有一个权值w,选择尽可能多的节点, // 这些节点相互联通,而且依照权值升序排序之后得到节 ...
- Flash--元件和实例
1.元件简述: 元件在Flash影片中是一种特殊的对象.在Flash中仅仅须要创建一次,然后能够在整部电影中重复使用而不会显著添加 文件大小. 事实上在使用元件时,我们一般使用的是该元件的实例,所以说 ...
- centos中chfn命令
功能说明:改变finger指令显示的信息 假设你想改变哪个用户的finger信息,直接chfn username就可以.然后就能够输入一系列的信息 [root@centos Desktop]# chf ...