将Kentico添加到ASP.NET MVC项目后无法连接

问题描述 投票:0回答:1

我的ASP.NET MVC处于开发的中间阶段,所以我研究了如何向项目中添加媒体,并且遇到了Kentico库。

并且我试图添加Kentico.Content.Web.MvcKentico.LanguagePack.EnglishKentico.LibrariesKentico.MediaLibraryKentico.Web.Mvc

该网站之前运行平稳,但是添加了这些软件包之后,它会在浏览器中导致此错误:

建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称正确,并且已将SQL Server配置为允许远程连接。 (提供者:命名管道提供者,错误:40-无法打开与SQL Server的连接)

描述:当前Web请求的执行期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其在代码中起源的更多信息。

异常详细信息:CMS.DataEngine.ApplicationInitException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称正确,并且已将SQL Server配置为允许远程连接。 (提供者:命名管道提供者,错误:40-无法打开与SQL Server的连接)

源错误:

[在执行当前Web请求的过程中生成了未处理的异常。可以使用下面的异常堆栈跟踪来标识有关异常的来源和位置的信息。

堆栈跟踪:

[ApplicationInitException:建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称正确,并且已将SQL Server配置为允许远程连接。 (提供者:命名管道提供程序,错误:40-无法打开与SQL Server的连接)]

CMS.DataEngine.CMSApplication.ReportApplicationInitError(字符串消息)+193CMS.DataEngine.CMSApplication.Init()+895Kentico.Web.Mvc.ApplicationHttpModule.HandleBeginRequest(Object sender,EventArgs e)+5System.Web.SyncEventExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()+144System.Web.HttpApplication.ExecuteStepImpl(IExecutionStep步骤)+50System.Web.HttpApplication.ExecuteStep(IExecutionStep步骤,布尔值并已完成同步)+73

我尝试将连接字符串添加到web.config

<configuration>
    <connectionStrings>
        ...
        <add name="CMSConnectionString" 
             connectionString="Persist Security Info=False;database=Kentico;server=myserver;user id=username;password=mypassword;Current Language=English;Connection Timeout=120;" />
    </connectionStrings>

编辑Global.asax.cs

protected void Application_Start()
{
     AreaRegistration.RegisterAllAreas();
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
     RouteConfig.RegisterRoutes(RouteTable.Routes);
     BundleConfig.RegisterBundles(BundleTable.Bundles);
     // Enables and configures the selected Kentico ASP.NET MVC integration features
     ApplicationConfig.RegisterFeatures(ApplicationBuilder.Current);
}

编辑App_Start\RouteConfig.cs

    public static void RegisterRoutes(RouteCollection routes)
    {
        routes.IgnoreRoute("{resource}.axd/{*pathInfo}");

        // Maps routes to Kentico HTTP handlers.
        // Must be first, since some Kentico URLs may be matched by the default ASP.NET MVC routes,
        // which can result in pages being displayed without images.
        routes.Kentico().MapRoutes();

        routes.MapRoute(
            name: "Default",
            url: "{controller}/{action}/{id}",
            defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional }
        );
    }

并在WebAssemblyInfo.cs中创建了一个名为Properties的新类:

using CMS;

[assembly: AssemblyDiscoverable]
namespace WebApplication1.Properties
{
    public class WebAssemblyInfo
    {
    }
}
c# sql-server asp.net-mvc kentico
1个回答
0
投票

您已经注意到,添加这些库会对您的项目进行一些更改。我建议您在Kentico项目的web.config文件中查找连接字符串并进行匹配。您必须确保您的MVC站点仍然可以使用更改进行构建,但是从Kentico项目复制连接字符串应该可以解决您的问题(假设您的Kentico项目仍在加载)。

热门问题
推荐问题
最新问题