【问题标题】:Visual Studio web deploy of ASP MVC appASP MVC 应用的 Visual Studio Web 部署
【发布时间】:2015-08-23 07:43:19
【问题描述】:

我正在尝试通过网络部署代码优先的 ASP MVC 应用程序。共享主机启用了网络部署,应用程序上传并发布。但是,它无法创建数据库。

[Win32Exception (0x80004005): 系统找不到文件 指定]

[SqlException (0x80131904): 网络相关或实例特定 建立与 SQL Server 的连接时出错。这 服务器未找到或无法访问。验证实例 名称正确且 SQL Server 配置为允许远程 连接。 (提供者:SQL 网络接口,错误:52 - 无法 找到本地数据库运行时安装。验证 SQL Server Express 已正确安装并且本地数据库运行时 功能已启用。)]

我有什么需要做的吗?是不是先切换到数据库比较好?

我的发布资料是:

<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
  <PropertyGroup>
    <WebPublishMethod>MSDeploy</WebPublishMethod>
    <LastUsedBuildConfiguration>Release</LastUsedBuildConfiguration>
    <LastUsedPlatform>Any CPU</LastUsedPlatform>
    <SiteUrlToLaunchAfterPublish>http://abalter-001-site1.myasp.net/</SiteUrlToLaunchAfterPublish>
    <LaunchSiteAfterPublish>True</LaunchSiteAfterPublish>
    <ExcludeApp_Data>False</ExcludeApp_Data>
    <MSDeployServiceURL>https://abalter-001-site1.myasp.net:8172/MsDeploy.axd</MSDeployServiceURL>
    <DeployIisAppPath>abalter-001-site1</DeployIisAppPath>
    <RemoteSitePhysicalPath />
    <SkipExtraFilesOnServer>True</SkipExtraFilesOnServer>
    <MSDeployPublishMethod>WMSVC</MSDeployPublishMethod>
    <EnableMSDeployBackup>True</EnableMSDeployBackup>
    <UserName>ifc\abalter-001</UserName>
    <_SavePWD>True</_SavePWD>
    <PublishDatabaseSettings>
      <Objects xmlns="">
        <ObjectGroup Name="GatorsContext" Order="1" Enabled="False">
          <Destination Path="" />
          <Object Type="DbCodeFirst">
            <Source Path="DBContext" DbContext="Gators3.Models.GatorsContext, Gators3" Origin="Configuration" />
          </Object>
        </ObjectGroup>
        <ObjectGroup Name="DefaultConnection" Order="2" Enabled="False">
          <Destination Path="" />
          <Object Type="DbCodeFirst">
            <Source Path="DBContext" DbContext="Gators3.Models.ApplicationDbContext, Gators3" Origin="Configuration" />
          </Object>
        </ObjectGroup>
      </Objects>
    </PublishDatabaseSettings>
  </PropertyGroup>
  <ItemGroup>
    <MSDeployParameterValue Include="$(DeployParameterPrefix)DefaultConnection-Web.config Connection String" />
    <MSDeployParameterValue Include="$(DeployParameterPrefix)GatorsContext-Web.config Connection String" />
  </ItemGroup>
</Project>

【问题讨论】:

    标签: asp.net asp.net-mvc webdeploy


    【解决方案1】:

    我以前没有使用过这种部署方式。我更喜欢发布到本地目录并使用它来部署到所有位置,因此所有二进制文件都完全相同并且适用于每个环境。设置在部署之外进行管理,以便为每个环境配置不同的设置。

    但在您的情况下,我敢打赌服务器上您的 Web 应用程序的 Web.config 中仍然有两个连接字符串。检查这些以查看是否:

    1. 服务器名称正确。
    2. 数据库名称正确。
    3. 检查是否可以访问服务器作为所需帐户的数据库。通常这是运行应用程序池的帐户

    【讨论】:

    • 服务器名称正确,因为应用程序已上传并运行。只有连接到数据库的函数不起作用。因为应用程序是代码优先的,所以数据库是在运行时创建的。
    • 我的意思是数据库连接字符串中的服务器名称。服务端的web.config中不包含连接字符串吗?
    • 确实如此。它在本地运行,所以这不意味着连接字符串是正确的吗? Apparently,web deploy 应该对其上传到服务器的 Web.config 进行某些更改。但我在我的服务器上看不到这些变化。事实上,我根本没有看到 &lt;contexts&gt; 部分。
    • 那么这就是真正的问题所在。您将需要这些设置适合您要部署到的环境。查看asp.net/web-forms/overview/deployment/… 了解如何设置部署参数。
    • 但这是针对 web 包部署,而不是 web 部署。我不认为我的主机是为此设置的。它们是为网络部署而设置的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多