Azure / App-Service-Migration-Assistant

Azure Websites Migration Assistant for Windows is a tool that allows customers to move their existing sites hosted on IIS servers into the cloud on Azure App Service. For more information check out https://appmigration.microsoft.com .
https://appmigration.microsoft.com
MIT License
75 stars 60 forks source link

Unhandled Exception: System.NullReferenceException - Unable to complete "Assessment Report" #11

Closed MattThelwell closed 3 years ago

MattThelwell commented 5 years ago

After starting the "Azure App Service Migration Assistant (Preview)" tool to analyse my IIS configuration, once a website has been selected and the tool runs for a while the following message is provided.

"We're sorry, there has been an error. To get help, please use the Help > Report Issues menu option and include the following information: Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object. at iisConfigHelper.AnonymousString.op_Implicit(AnonymousString s) at iisConfigHelper.system_webServersecurityauthentication__anonymousAuthentication.SetAnonymous(Boolean IsAnonymous) at iisConfigHelper.IisConfiguration.SetAnonymous(Boolean IsAnonymous) at iisConfigAssistant.Program.DoGetSiteAssessmentData(String[] args) in D:\a\1\s\src\IisConfigurationHelper\iisConfigAssistant\Program.cs:line 259 at iisConfigAssistant.Program.Main(String[] args) in D:\a\1\s\src\IisConfigurationHelper\iisConfigAssistant\Program.cs:line 39"

image

Investigative information

Please provide the following:

Repro steps

  1. Start Tool
  2. Select Website to Assess
  3. Wait
  4. Tool presents error message

Expected behaviour

After I choose a website to asses the expected behaviour is a report for the website is produced.

Actual behaviour

An error message is presented and the tool does not continue the assessment.

Known workarounds

None :(

NitashaV commented 5 years ago

Thanks for reporting this issue MattThelwell. We are working on a fix for this particular issue and hope to release the new bits next week.

Does the current GA version of Migration Assistant work for your app (as a workaround)?

krolson commented 5 years ago

Thank you for reporting this, @MattThelwell! Could you please send us the anonymousAuthentication sections of your config, both server level (like in c:\Windows\System32\inetsrv\config\applicationHost.config) and site level (like in site-directory[\subdir]\web.config), like below sample (please obscure any sensitive values if present!) so we can use it to replicate the issue?

        <security>
            <authentication>
                <anonymousAuthentication userName=".\user" password="[enc:IISCngProvider:7[stuff]g==:enc]" />
            </authentication>
        </security>

Or can also email above to me directly at my username @microsoft.com if you'd prefer.

NitashaV commented 5 years ago

@MattThelwell We have released a new Preview build earlier today. It would be great if you could give it a try and let us know if it works for your IIS site. Thanks

MattThelwell commented 5 years ago

Brilliant! I'll give this a go and get back to you.

MattThelwell commented 5 years ago

Hi All,

Here is the security section of the applicationHost.config

            <sectionGroup name="security">
                <section name="access" overrideModeDefault="Deny" />
                <section name="applicationDependencies" overrideModeDefault="Deny" />
                <sectionGroup name="authentication">
                    <section name="anonymousAuthentication" overrideModeDefault="Deny" />
                    <section name="basicAuthentication" overrideModeDefault="Deny" />
                    <section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" />
                    <section name="digestAuthentication" overrideModeDefault="Deny" />
                    <section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" />
                    <section name="windowsAuthentication" overrideModeDefault="Deny" />
                </sectionGroup>
                <section name="authorization" overrideModeDefault="Allow" />
                <section name="ipSecurity" overrideModeDefault="Deny" />
                <section name="dynamicIpSecurity" overrideModeDefault="Deny" />
                <section name="isapiCgiRestriction" allowDefinition="AppHostOnly" overrideModeDefault="Deny" />
                <section name="requestFiltering" overrideModeDefault="Allow" />
            </sectionGroup>

Once running the new tool I am presented with the following error.

We're sorry, there has been an error. To get help, please use the Help > Report Issues menu option and include the following information: Session cba095e7-2341-4e10-a688-5fe21176cf64, GETTING CONFIG: Unexpected output for GetSiteAssessmentData, error was: SyntaxError: Unexpected token { in JSON at position 1520399

image

wadeh-ms commented 5 years ago

Hi Matt,

The section that you have included is the section. We are looking for the section. And I can actually narrow it down a bit more than that. We are looking for the section. Here is an example of what it should look like:

       <authentication>
            <anonymousAuthentication enabled="true" userName="IUSR" />
            <basicAuthentication enabled="false" />
            <clientCertificateMappingAuthentication />
            <digestAuthentication />
            <iisClientCertificateMappingAuthentication />
            <windowsAuthentication enabled="false" authPersistNonNTLM="true">
                <providers>
                    <add value="Negotiate" />
                    <add value="NTLM" />
                </providers>
            </windowsAuthentication>
        </authentication>

Note that I expect that yours will have some different information in it (which is why we'd like to see it). Before posting it, please check it for any sensitive information, like user names or passwords and replace them with some xx's to redact them.

Also, we suspect that you disabled the error logging functionality when you ran the Migration Assistant. If you enable that, we should get more information that can help us to identify the underlying issue.

Thanks, -Wade

MattThelwell commented 5 years ago

Hi Wade,

>  <authentication>
>                 <anonymousAuthentication enabled="true" userName="IUSR" />
> 
>                 <basicAuthentication enabled="false" />
> 
>                 <clientCertificateMappingAuthentication enabled="false" />
> 
>                 <digestAuthentication enabled="false" />
> 
>                 <iisClientCertificateMappingAuthentication enabled="false">
>                 </iisClientCertificateMappingAuthentication>
> 
>                 <windowsAuthentication enabled="false" authPersistNonNTLM="true">
>                     <providers>
>                         <add value="Negotiate" />
>                         <add value="NTLM" />
>                     </providers>
>                 </windowsAuthentication>
>  </authentication>
krolson commented 3 years ago

Closing this issue due to lack of activity in last 90 days. Please open a new issue if you are still experiencing this issue using most recent version (1.0.8).