ASP.NET IIS 应用程序中的服务器错误

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ASP.NET IIS 应用程序中的服务器错误相关的知识,希望对你有一定的参考价值。

我在用IIS调试ASPX文件的时候出错,但是用VS2005却一切正常..不知道原因
我刚学ASP 请大家帮忙,谢谢~
“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

编译错误
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。

编译器错误信息: CS0016: 未能写入输出文件“d:\WINDOWS.1\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\bd917d9a\2be75843\App_Web_default.aspx.cdcab7d2.-veabdtx.dll”--“拒绝访问。 ”

源错误:

[没有相关的源行]

源文件: 行: 0

显示详细的编译器输出:

d:\windows.1\system32\inetsrv> "D:\WINDOWS.1\Microsoft.NET\Framework\v2.0.50727\csc.exe" /t:library /utf8output /R:"D:\WINDOWS.1\assembly\GAC_MSIL\System.Configuration\2.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll" /R:"D:\WINDOWS.1\assembly\GAC_MSIL\System.Drawing\2.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll" /R:"D:\WINDOWS.1\assembly\GAC_MSIL\System\2.0.0.0__b77a5c561934e089\System.dll" /R:"D:\WINDOWS.1\Microsoft.NET\Framework\v2.0.50727\mscorlib.dll" /R:"D:\WINDOWS.1\assembly\GAC_MSIL\System.Web.Services\2.0.0.0__b03f5f7f11d50a3a\System.Web.Services.dll" /R:"D:\WINDOWS.1\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll" /R:"D:\WINDOWS.1\assembly\GAC_MSIL\System.Web.Mobile\2.0.0.0__b03f5f7f11d50a3a\System.Web.Mobile.dll" /R:"D:\WINDOWS.1\assembly\GAC_32\System.Data\2.0.0.0__b77a5c561934e089\System.Data.dll" /R:"D:\WINDOWS.1\assembly\GAC_32\System.EnterpriseServices\2.0.0.0__b03f5f7f11d50a3a\System.EnterpriseServices.dll" /R:"D:\WINDOWS.1\assembly\GAC_32\System.Web\2.0.0.0__b03f5f7f11d50a3a\System.Web.dll" /out:"D:\WINDOWS.1\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\bd917d9a\2be75843\App_Web_default.aspx.cdcab7d2.-veabdtx.dll" /D:DEBUG /debug+ /optimize- /w:4 /nowarn:1659;1699 "D:\WINDOWS.1\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\bd917d9a\2be75843\App_Web_default.aspx.cdcab7d2.-veabdtx.0.cs" "D:\WINDOWS.1\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\bd917d9a\2be75843\App_Web_default.aspx.cdcab7d2.-veabdtx.1.cs" "D:\WINDOWS.1\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\bd917d9a\2be75843\App_Web_default.aspx.cdcab7d2.-veabdtx.2.cs"

Microsoft (R) Visual C# 2005 编译器 版本 8.00.50727.42
用于 Microsoft (R) Windows (R) 2005 Framework 版本 2.0.50727
版权所有 (C) Microsoft Corporation 2001-2005。保留所有权利。

error CS0016: 未能写入输出文件“d:\WINDOWS.1\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\bd917d9a\2be75843\App_Web_default.aspx.cdcab7d2.-veabdtx.dll”--“拒绝访问。 ”

--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:2.0.50727.42; ASP.NET 版本:2.0.50727.42
谢谢两位的回答
但是本来就是2.0...
你们指的是这里吗?
另外我的C:\TEMP和Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files我都给的最高权限
提高赏分10,能解决另负加10分!

出错信息如下: 

    运行时错误 
    说明: 服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)。但可以通过在本地服务器计算机上运行的浏览器查看。 
    详细信息: 若要使他人能够在远程计算机上查看此特定错误信息的详细信息,请在位于当前 Web 应用程序根目录下的“web.config”配置文件中创建一个 <customErrors> 标记。然后应将此 <customErrors> 标记的“mode”属性设置为“Off”。 
    <!-- Web.Config 配置文件 --> 
    <configuration> 
    <system.web> 
    <customErrors mode="Off"/> 
    </system.web> 
    </configuration> 
    注释: 通过修改应用程序的 <customErrors> 配置标记的“defaultRedirect”属性,使之指向自定义错误页的 URL,可以用自定义错误页替换所看到的当前错误页。 
    <!-- Web.Config 配置文件 --> 
    <configuration> 
    <system.web> 
    <customErrors mode="RemoteOnly" defaultRedirect="mycustompage.htm"/> 
    </system.web> 
    </configuration> 


    “/”应用程序中的服务器错误。 
    配置错误 
    说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。
    分析器错误信息: 无法识别的配置节“connectionStrings” 
    源错误: 
    行 12: <add key="Dsn" value="server=(local);database=al_bysj;uid=sa;pwd="/> 
    行 13: </appSettings> 
    行 14: <connectionStrings> 
    行 15: <add name="al_bysjConnectionString" connectionString="Data Source=(local);Initial Catalog=al_bysj;User ID=sa;Password=" providerName="System.Data.SqlClient"/> 
    行 16: </connectionStrings> 
    源文件: D:PrecompiledWebMaterialManageweb.config 行: 14 
    版本信息: Microsoft .NET Framework 版本:1.1.4322.2300; ASP.NET 版本:1.1.4322.2300 
    从版本信息中可以捕捉到, 
    确认Microsoft .NET Framework 版本


    解决方法一: 
    在cmd 命令行中运行 C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe -i 

    解决方法二: 
    在IIS中选中该网站,单击右键‘属性’,选择 Asp.net 标签栏。将 Asp.net 版本改成2.0 即可。 
    Microsoft .NET Framework 版本:1.1.4322.2300

参考技术A 你的.net版本是什么的,应该让.net环境重新注册iis,我以.net
framework2.0为例
在运行里面输入cmd
然后在dos界面输入c:\windows\microsoft.net\framework\v2.0.50727\aspnet_regiis.exe
-i
等待完成后应该就可以了~
参考技术B 把c:\windows\temp文件夹,设为administor完全,user可写iis进程用户可写就行了。具体是点右键属性,安全,下面不用我说了吧。
另外,在iis里,把asp.net 1.0改成2.0本回答被提问者采纳
参考技术C 1、确认web目录有users的权限。
2、iis脚本设置中,看下asp.net的版本是否是2.0的,如果没有修改为2.0脚本重试。

--------------------
补充答复:
这样,你把aspx文件,单独放到非C盘,iis上建立一个虚拟目录或者站点指向过去,然后设置iis的asp.net版本和这个目录的权限为everyone,再运行看。

细心些,祝你成功!
参考技术D 1、打开浏览器,点“工具”→“管理加载项”那里禁用所有可疑插件,或者你能准确知道没问题的保留。然后→工具→INTERNET选项→常规页面→删除cookies→删除文件→钩选删除所有脱机内容→确定→设置使用的磁盘空间为:8MB或以下(我自己使用1MB)→确定→清除历史纪录→网页保存在历史记录中的天数:3以下→应用确定(我自己使用的设置是“0”天)。
2、还原浏览器高级设置默认值:工具→INTERNET选项→高级→还原默认设置。
3、恢复默认浏览器的方法“工具”→Internet选项→程序→最下面有个“检查Internet Explorer是否为默认的浏览器”把前面的钩选上,确定。

IIS 7.5 中的 ASP.NET Core WebAPI 500 内部错误

【中文标题】IIS 7.5 中的 ASP.NET Core WebAPI 500 内部错误【英文标题】:ASP.NET Core WebAPI 500 Internal error in IIS 7.5 【发布时间】:2016-04-07 17:47:41 【问题描述】:

我正在努力让这个 WebAPI 工作。好吧,使用 IIS。在 IIS express 中一切正常,但是当我发布它时,特别是 1 个 api 请求不起作用。我正在尝试访问API/[Controller]/date/integer 的网址。我不断收到 500 服务器错误。我的API/[Controller]/date 的另一条路线有效。

这是我的 API 控制器:

[Route("api/[controller]")]
    public class PostingsController : Controller
    
        // GET: api/Postings/5
        [HttpGet("date")]
        public string Get(string date)
        
            return date;
        

        // GET api/Postings/20160407/2
        [HttpGet("date/modeID")]
        public List<TruckPosting> Get(string date, int modeID)
        
            TruckPosting tp = new TruckPosting();
            List<TruckPosting> truckPostings = tp.GetTruckPostings(date, modeID);
            return truckPostings;
        
    

原因可能是我试图返回一个列表?考虑到它在 VS 的 IIS Express 中运行良好,我很难过。

编辑

这是我的 startup.cs 页面:

public void ConfigureServices(IServiceCollection services)
        
            services.AddMvc();
        

public void Configure1(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
            
                app.UseIISPlatformHandler();
                app.UseDefaultFiles();
                app.UseStaticFiles();
                app.UseFileServer(true);
                app.UseMvc();
            

            // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
            
                app.Map("/appRoot", (app1) => this.Configure1(app1, env, loggerFactory));
            

【问题讨论】:

你检查了服务器的事件日志吗?通常 500 是由异常引起的,通常您可以在 IIS 机器上的 Application Log 中找到这些详细信息。 你可以调查一下你的字符串日期参数的使用 @Infer-On 你是什么意思? @CodingGorilla 日志没有任何特别的内容。只是一些时间空闲日志和一些 404。语法是否正确?例如我可以传入一个字符串参数,然后是一个整数吗? (date 是字符串,modeID 是 int) 现在,我还没有在我的 startup.cs 文件中进行任何 WebAPI 映射。我已经为应用程序本身做了 1 次映射。 【参考方案1】:

这是一个很好的想法,它可能是您返回一个列表的事实。我们有工作的 Core Web API 方法,它们都返回Task&lt;IEnumerable&lt;Foo&gt;&gt;。尝试将返回类型 List&lt;TruckPosting&gt; 更改为 Task&lt;IEnumerable&lt;TruckPosting&gt;&gt;

编辑:要查看 500(内部服务器)错误的详细信息,您需要将以下代码行放在 Configure(或 Configure1)方法的开头:

app.UseDeveloperExceptionPage();   

显然这不是您在生产环境中想要的。

EDIT2:在 VS 中运行时,只要将“属性”的“调试”部分中的 Hosting:Environment 变量设置为“开发”,就可以使用下面的代码显示异常详细信息。发布后,您需要创建一个名为 ASPNET_ENV 的系统环境变量并将其值设置为“Development”,否则代码将不会调用 UseDeveloperExceptionPage() 方法。

if (env.IsDevelopment())

    app.UseDeveloperExceptionPage();

【讨论】:

这就是为什么你要使用if (env.IsDevelopment()) 这样你就不必添加和删除dev exception page 是的,但我不知道他是如何发布他的项目的,所以我没有设置环境变量来完成这项工作。在第二个想法我可能应该有。我将更新答案以表明这一点。 好的,我已经缩小了范围。这与我要返回的对象列表有关。我想通了,因为如果我只返回几个字符串的简单列表,它就可以正常工作。我不知道如何调试它。 app.UseDeveloperExceptionPage 不会改变任何东西。它需要按什么顺序进入? @ClintB 好的,我收到了要显示的错误消息。问题不是我要返回的列表,而是我用来获取数据的 SqlClient。它说“无法加载 DLL”mycpu path\sni.dll”。有什么想法吗? @ClintB 刚刚想通了。我使用 dnx-coreclr-x64 而不是 x86 发布应用程序。谢谢你们的帮助!【参考方案2】:

我今天在 GitHub 上发布了一个 ASP.NET Core 自定义异常处理程序。我认为这可能对您有所帮助,因为您正在构建 SPA 并且可能正在调用很多 Web API 方法。

这是一个中间件项目,它为 Web API 调用返回错误消息,并为非 Web API 调用重定向到错误页面。它还可以在 SQL Server 数据库中记录异常。这是在一个单独的线程中完成的,以帮助提高性能。

该解决方案包括一个演示应用程序,该应用程序展示了如何将异常处理程序用于 Web API 异常和非 Web API 异常。

这是链接。https://github.com/ClintBailiff/CustomExceptionHandler

如果您最终查看并有一些建议或建议,我喜欢听听。

【讨论】:

以上是关于ASP.NET IIS 应用程序中的服务器错误的主要内容,如果未能解决你的问题,请参考以下文章

Asp.Net Core子应用由于配置中重复添加模块会引起IIS错误500.19

将 Asp.net 应用程序部署到 IIS 服务器时出错

IIS Express 在调试 ASP.NET MVC 时出现拒绝访问错误

IIS - 部署 ASP.NET 网站和数据库连接

IIS 7.0 / Windows Server 2008 上的 ASP.NET MVC 3 应用程序出现 404.0 错误

当多个 Blazor 应用程序发布到 IIS 时,我们收到 HTTP 错误 500.35 - ASP.NET Core 不支持同一应用程序池中的多个应用程序 [重复]