gpt4 book ai didi

asp.net-mvc - 使用 SQLite 将 ASP.NET MVC 应用程序部署到 Azure 网站

转载 作者:行者123 更新时间:2023-12-03 17:37:46 24 4
gpt4 key购买 nike

我有一个包含 Web API 2 服务的 ASP.NET MVC 5 应用程序,并将其发布到我的 Azure 网站。静态站点工作得很好 - 当我提供虚拟数据时,Web API 也工作了。

由于我添加了 SQLite 数据库(在 App_Data 内的 .db3 文件中),我无法再调用我的 Web API 服务 - 我只是得到一个“An发生错误”消息,我似乎不知道如何真正找出问题所在。

我还将带有 XML 文件存储的 Elmah.MVC 安装到我的应用程序中,但是当我尝试导航到 http://myapp.azurewebsites.net/elmah 时,我什么也没得到 - 就好像没有发生错误一样......

好吧,现在我被困在我的本地机器上 - 当然 - 一切都工作得很好。但整个 Azure 部署故事对我来说仍然是一个很大的谜。

  1. 如何找到任何类型的错误日志以便我可以开始了解发生了什么?
  2. 有什么方法可以查看构成此应用的文件系统中的文件吗?我想检查我期望看到的所有文件是否都已就位

更新:感谢 David 的回答,我能够使用 FTP 访问“详细”错误页面(我只是不知何故记得一个演示,其中日志消息在我的门户中实时显示)相信 - 必须使用 FTP 来获取日志似乎有点“笨拙”...)

我收到此错误(我完全不明白也不知道该怎么办......)

HTTP Error 500.0 - Internal Server Error

The page cannot be displayed because an internal server error has occurred.

Most likely causes:

IIS received the request; however, an internal error occurred during the processing of the request. The root cause of this error depends on which module handles the request and what was happening in the worker process when this error occurred.
IIS was not able to access the web.config file for the Web site or application. This can occur if the NTFS permissions are set incorrectly.
IIS was not able to process configuration for the Web site or application.
The authenticated user does not have permission to use this DLL.
The request is mapped to a managed handler but the .NET Extensibility Feature is not installed.

Things you can try:

Ensure that the NTFS permissions for the web.config file are correct and allow access to the Web server's machine account.
Check the event logs to see if any additional information was logged.
Verify the permissions for the DLL.
Install the .NET Extensibility feature if the request is mapped to a managed handler.
Create a tracing rule to track failed requests for this HTTP status code. For more information about creating a tracing rule for failed requests, click here.

我希望我知道如何在 Azure 网站设置中尝试任何“你可以尝试的事情”......有人接受吗?

更新#2:通过一些“神秘”的调试,我发现根本错误是:

DllNotFoundException: Unable to load DLL 'SQLite.Interop.dll': The specified module could not be found. (Exception from HRESULT: 0x8007007E)

所以我的问题是:SQLite.Interop.dll 是什么,为什么我需要它?我刚刚安装了 System.Data.SQLite.Core NuGet 包(不需要 EF6 支持等) - 在本地工作得很好,但是当部署到 Azure 网站时,突然出现了额外的 DLL被搜索但没有找到...为什么会这样?

最佳答案

基于网络的服务控制管理器是您的 friend 。在任何浏览器中转到 myapp.scm.azurewebsites.net

Kudu Service Control Manager

要查看文件系统中的文件,请从服务控制管理器转到调试控制台 > PowerShell。这使您可以使用 PowerShell 检查所有文件。

要查看实时显示的日志消息,请从服务控制管理器转到“工具”>“日志流”。这将显示您想要的流日志。

关于asp.net-mvc - 使用 SQLite 将 ASP.NET MVC 应用程序部署到 Azure 网站,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32317821/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com