8
votes

I am creating an ASP.NET webage that retrieve and insert data inside CRM 2011. Everything was going fine, the page was being deployed to the server and it was ready to test.

Suddenly a new change come out, and after I deleted the files in the server and republished the project (I know it is not needed, but still..) I could not access the website anymore.

All I get is 500- Internal server error There is a problem with the resource you are looking for, and it cannot be displayed.

I tried turning on the debug function with debug="True" on the page header, I set

<customErrors mode="Off"/>
<compilation debug="true" targetFramework="4.5"/>

On the web.config file, and I also tried adding

<httpErrors errorMode="Detailed" />

but none of them helped having a better error message.

My web.config file is:

   <?xml version="1.0"?>
<!--
  For more information on how to configure your ASP.NET application, please visit
  http://go.microsoft.com/fwlink/?LinkId=169433
  -->
<configuration>
  <configSections>
    <!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
    <section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=5.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
  </configSections>
  <connectionStrings>
    <add name="DefaultConnection" providerName="System.Data.SqlClient" connectionString="Data Source=(LocalDb)\v11.0;Initial Catalog=aspnet-ASP-20130619150943;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnet-ASP-20130619150943.mdf"/>
  </connectionStrings>
  <!--
    For a description of web.config changes for .NET 4.5 see http://go.microsoft.com/fwlink/?LinkId=235367.

    The following attributes can be set on the <httpRuntime> tag.
      <system.Web>
        <httpRuntime targetFramework="4.5" />
      </system.Web>
  -->
  <system.web>
    <customErrors mode="Off"/>
    <compilation debug="true" targetFramework="4.5"/>
    <httpRuntime/>
    <pages controlRenderingCompatibilityVersion="4.0">
      <namespaces>
        <add namespace="System.Web.Optimization"/>
      </namespaces>
      <controls>
        <add assembly="Microsoft.AspNet.Web.Optimization.WebForms" namespace="Microsoft.AspNet.Web.Optimization.WebForms" tagPrefix="webopt"/>
      </controls>
    </pages>
    <authentication mode="Forms">
      <forms loginUrl="~/Account/Login" timeout="2880" defaultUrl="~/"/>
    </authentication>
    <profile defaultProvider="DefaultProfileProvider">
      <providers>
        <add name="DefaultProfileProvider" type="System.Web.Providers.DefaultProfileProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/"/>
      </providers>
    </profile>
    <membership defaultProvider="DefaultMembershipProvider">
      <providers>
        <add name="DefaultMembershipProvider" type="System.Web.Providers.DefaultMembershipProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/"/>
      </providers>
    </membership>
    <roleManager defaultProvider="DefaultRoleProvider">
      <providers>
        <add name="DefaultRoleProvider" type="System.Web.Providers.DefaultRoleProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection" applicationName="/"/>
      </providers>
    </roleManager>
    <!--
            If you are deploying to a cloud environment that has multiple web server instances,
            you should change session state mode from "InProc" to "Custom". In addition,
            change the connection string named "DefaultConnection" to connect to an instance
            of SQL Server (including SQL Azure and SQL  Compact) instead of to SQL Server Express.
      -->
    <sessionState mode="InProc" customProvider="DefaultSessionProvider">
      <providers>
        <add name="DefaultSessionProvider" type="System.Web.Providers.DefaultSessionStateProvider, System.Web.Providers, Version=1.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" connectionStringName="DefaultConnection"/>
      </providers>
    </sessionState>
  </system.web>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="DotNetOpenAuth.Core" publicKeyToken="2780ccd10d57b246"/>
        <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0"/>
      </dependentAssembly>
      <dependentAssembly>
        <assemblyIdentity name="DotNetOpenAuth.AspNet" publicKeyToken="2780ccd10d57b246"/>
        <bindingRedirect oldVersion="1.0.0.0-4.0.0.0" newVersion="4.1.0.0"/>
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <entityFramework>
    <defaultConnectionFactory type="System.Data.Entity.Infrastructure.SqlConnectionFactory, EntityFramework"/>
  </entityFramework>

  <appSettings>
    <add key="CRMUserName" value="xxxx" />
    <add key="CrmUserPassword" value="yyyy" />
    <add key="OrganizationUri" value="https://uuuuuu/XRMServices/2011/Organization.svc" />
    <add key="HomeRealmUri" value="" />
  </appSettings>
</configuration>

I get an error message when I run the page. The error message is:
An error occurred when verifying security for the message System.ServiceModel.FaultException: An error occurred when verifying security for the message.

The section where the error fires is:

  RetrieveAttributeRequest retrieveFreightTerm = new RetrieveAttributeRequest
  {
    EntityLogicalName = "account",
    LogicalName = "address1_freighttermscode",
    RetrieveAsIfPublished = true
  };

Any ideas?

2
1. Can you screenshot and post the error page you get with the above settings? 2. I presume this is IIS7 or 7.5?Kev
Also try setting the existingResponse="PassThrough" attribute in your httpErrors element.Kev
Can you check Event Viewer, there will be more details logged by IIS.Akash Kava
The 500 usually means, that your code is not even run and your server coonfiguration is wrong. The IIS usually put his logs into %SystemDrive%\inetpub\logs\LogFiles You can check the current configuration if you click the webapplication in IIS and click on the log icon.Péter
I have updated the question with the detail I found in the Event ViewerMaPi

2 Answers

7
votes

I opened the website from the server running IIS and I could see a detailed error page, with all the information I needed

5
votes

Many times it happens after editing the web.config file, we leave some tag not properly closed or to say not well formed. This also leads to 500 Internal server error.

To make sure your web.config atleast passes this check, open it in Internet Explorer. In case any tags are missed out, the IE will show you the corresponding error.