首页 > 解决方案 > ASP.NET 页面和 VB.NET 代码从 IIS 8.5 (Win Server 2012 R2) 到 IIS 10 (Win Server 2016) 的应用程序迁移问题

问题描述

我到处寻找建议,什么找到在网络上浏览时,只有这个页面给我错误。

当我通过从 IIS 执行“浏览”运行​​测试时没问题。我得出的结论是,在页面代码(我在下面报告)中,出于安全原因, IIS10不再识别某些行。

如果你注意到一些奇怪的事情,你能告诉我吗?我在下面报告事件查看器报告的错误的详细信息;似乎错误在第 28 行

事件查看器错误:

异常信息:异常类型:IOException 异常消息:指定的服务器无法执行请求的操作。

在 System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath) 在 System.IO.FileSystemEnumerableIterator 1.CommonInit() 在 System.IO.FileSystemEnumerableIterator 1..ctor(String path, String originalUserPath, String searchPattern, SearchOption searchOption, SearchResultHandler `1 resultHandler, Boolean checkHost) at System.IO.DirectoryInfo.InternalGetFiles(String searchPattern, SearchOption searchOption) at it_prod_ship_xmlparser_it.Page_Load(Object sender, EventArgs e) in C:\inetpub\wwwroot\drivetools\it\prod\ship\xmlparser_it .aspx.vb:System.Web.UI.Control.OnLoad(EventArgs e) 处 System.Web.UI.Control.LoadRecursive() 处 System.Web.UI.Page.ProcessRequestMain 处的第 28 行(布尔值 includeStagesBeforeAsyncPoint,布尔值 includeStagesAfterAsyncPoint)

Imports System.Data
Imports System.Linq
Imports System.Xml.Linq
Imports System.IO
Imports System.Xml
Imports System.Data.SqlClient
Imports System.Net
Imports System.Security.Principal
Imports CrystalDecisions.CrystalReports.Engine
Imports CrystalDecisions.Shared
Imports System.Security
Imports System.Text
Imports System.Security.Cryptography
Imports System.Drawing

Partial Class it_prod_ship_xmlparser_it
Inherits System.Web.UI.Page

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
    If Not Page.IsPostBack Then
        Session("utente") = UCase(funzioni.usr)
        If Session("utente") = "ITXXXXXX" Or Session("utente") = "ITXXXXXX" Then
            btnXML.Enabled = False : btnBart.Enabled = False : btnTrackC.Enabled = False
            btnLbl.Enabled = False : btnTel.Enabled = False : btnTrack.Enabled = False
            AsyncFileUpload1.Enabled = False : gvXML.Enabled = False
        End If
        Dim folder As New DirectoryInfo("\\servercompany.it.company\drivefiles\xmlfiles")
        Dim listfile As FileInfo() = folder.GetFiles("*.xml")
        If listfile.Length = 0 Then
            btnXML.Enabled = False
        Else
            Dim fsize As Double = 0
            For Each f As FileInfo In listfile
                fsize += f.Length
            Next
            btnXML.Text = "Importa (" & listfile.Length & " - " & Math.Round(fsize / 1024 / 1000, 1) & " Mb)"
        End If

    End If

End Sub

提前感谢您提供的所有信息

标签: asp.netvb.netmigrationiis-8.5iis-10

解决方案


我要感谢所有回复并为我分析问题提供重要信息的人。经过几个月让我发疯的尝试,我发现我的问题是由新的安全设置引起的:从“Windows Server 2012 R2”切换到“Windows Server 2016”时,安全功能“DEVICE GUARD”和“CREDENTIAL” GUARD”在所有需要访问网页的客户端上被调用,而这些网页又需要 DELEGATION 权限(例如,当需要以打开 Web 应用程序的用户的名义浏览网络文件夹时)。我通过在参与验证应用程序的服务器上设置正确的 SPN 来解决它。再次感谢大家


推荐阅读