После публикации приложения на сервере IIS mimetype файла xlsx, возвращающего application / octet-stream - PullRequest
0 голосов
/ 27 мая 2019

Я пытаюсь получить MIME-тип из содержимого файла. Он отлично работает на IIS Express и IIS, настроенных на Windows 10 локально, но когда я опубликовал приложение на Windows 2012 Server. MIME из xlsx файла, возвращающего приложение / октет-поток.

Public Shared Function GetMimeType(ByVal file As String) As String
        Dim mime As String = Nothing
        Dim MaxContent As Integer = CInt(New FileInfo(file).Length)
        If MaxContent > 4096 Then
            MaxContent = 4096
        End If

        Dim fs As New FileStream(file, FileMode.Open)

        Dim buf(MaxContent) As Byte
        fs.Read(buf, 0, MaxContent)
        fs.Close()
        Dim result As Integer = FindMimeFromData(IntPtr.Zero, file, buf, MaxContent, Nothing, 0, mime, 0)

        Return mime
    End Function

    <DllImport("urlmon.dll", CharSet:=CharSet.Unicode, ExactSpelling:=True, 

        SetLastError:=False)>
            Private Shared Function FindMimeFromData(
                ByVal pBC As IntPtr,
                <MarshalAs(UnmanagedType.LPWStr)>
                ByVal pwzUrl As String,
                <MarshalAs(UnmanagedType.LPArray, ArraySubType:=UnmanagedType.I1, SizeParamIndex:=3)> ByVal _
                pBuffer As Byte(),
                ByVal cbSize As Integer,
                <MarshalAs(UnmanagedType.LPWStr)>
                ByVal pwzMimeProposed As String,
                ByVal dwMimeFlags As Integer,
                <MarshalAs(UnmanagedType.LPWStr)>
                ByRef ppwzMimeOut As String,
                ByVal dwReserved As Integer) As Integer
            End Function

Я ожидаю получить вывод файла xlsx как application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

IIS MimeType Scanpshot

...