2012-03-21 2 views
0

웹 응용 프로그램에서 Spring.NET을 사용하고 있습니다. 처음에는 응용 프로그램이 Visual Studio Development Server를 사용하도록 설정되었습니다. 모든 것이 잘 작동했습니다. 그러나 로컬 IIS 웹 서버를 사용하도록 변경하고 가상 디렉터리를 만들고 응용 프로그램을 실행하면 System.NullReferenceException이됩니다. 스프링과 IIS가 작동하도록 Web.config를 구성해야한다고 생각합니다. Web.config 파일은 다음과 같습니다.IIS 서버 및 Spring.NET 개체 인스턴스화가 실패했습니다.

<configuration> 
<configSections> 
    <sectionGroup name="common"> 
    <section name="logging" type="Common.Logging.ConfigurationSectionHandler, Common.Logging" /> 
    </sectionGroup> 
    <sectionGroup name="spring"> 
    <section name="context" type="Spring.Context.Support.WebContextHandler, Spring.Web" /> 
    <section name="parsers" type="Spring.Context.Support.NamespaceParsersSectionHandler, Spring.Core" /> 
    </sectionGroup> 
    <section name="databaseSettings" type="System.Configuration.NameValueSectionHandler" /> 
</configSections> 
<common> 
    <logging> 
    <factoryAdapter type="Common.Logging.Log4Net.Log4NetLoggerFactoryAdapter, Common.Logging.Log4Net"> 
     <arg key="configType" value="FILE-WATCH" /> 
     <arg key="configFile" value="~/Config/Log4Net.xml" /> 
    </factoryAdapter> 
    </logging> 
</common> 
<spring> 
    <parsers /> 
    <context> 
    <resource uri="~/Data.xml" /> 
    <resource uri="~/Web.xml" /> 
    </context> 
</spring> 
<databaseSettings> 
    <add key="db.datasource" value="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\ASPNETDB.mdf;Integrated Security=True;User Instance=True" /> 
</databaseSettings> 
<appSettings> 
    <add key="Spring.Data.NHibernate.Support.OpenSessionInViewModule.SessionFactoryObjectName" value="NHibernateSessionFactory" /> 
    <add key="Telerik.Skin" value="Sunset"/>  
</appSettings> 
<connectionStrings> 
    <add name="ApplicationServices" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true" providerName="System.Data.SqlClient" /> 
</connectionStrings> 
<system.web> 
    <compilation debug="true" targetFramework="4.0"> 
    <assemblies> 
     <add assembly="System.Design, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B03F5F7F11D50A3A" /> 
     <add assembly="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /> 
     <add assembly="System.Speech, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /> 
    </assemblies> 
    </compilation> 
    <authentication mode="Forms"> 
    <forms loginUrl="~/Pages/Login.aspx" timeout="2880" defaultUrl="~/Pages/Secured/Home.aspx" /> 
    </authentication> 
    <membership> 
    <providers> 
     <clear /> 
     <add name="AspNetSqlMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices" enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false" maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10" applicationName="/" /> 
    </providers> 
    </membership> 
    <profile> 
    <providers> 
     <clear /> 
     <add name="AspNetSqlProfileProvider" type="System.Web.Profile.SqlProfileProvider" connectionStringName="ApplicationServices" applicationName="/" /> 
    </providers> 
    </profile> 
    <roleManager enabled="false"> 
    <providers> 
     <clear /> 
     <add name="AspNetSqlRoleProvider" type="System.Web.Security.SqlRoleProvider" connectionStringName="ApplicationServices" applicationName="/" /> 
     <add name="AspNetWindowsTokenRoleProvider" type="System.Web.Security.WindowsTokenRoleProvider" applicationName="/" /> 
    </providers> 
    </roleManager> 
    <httpModules> 
    <add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web" /> 
    <add name="OpenSessionInView" type="Spring.Data.NHibernate.Support.OpenSessionInViewModule, Spring.Data.NHibernate32" /> 
    </httpModules> 
    <httpHandlers> 
    <add verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web" /> 
    <add verb="*" path="*.asmx" type="Spring.Web.Services.WebServiceHandlerFactory, Spring.Web" /> 
    <add verb="*" path="ContextMonitor.ashx" type="Spring.Web.Support.ContextMonitor, Spring.Web" /> 
    <add path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" verb="*" validate="false" /> 
    </httpHandlers> 
    <pages> 
    <controls> 
     <add tagPrefix="spring" namespace="Spring.Web.UI.Controls" assembly="Spring.Web" /> 
    </controls> 
    </pages> 
</system.web> 
<system.webServer> 
    <modules runAllManagedModulesForAllRequests="true" /> 
    <validation validateIntegratedModeConfiguration="false" /> 
    <handlers> 
    <add name="Telerik_Web_UI_WebResource_axd" verb="*" preCondition="integratedMode" path="Telerik.Web.UI.WebResource.axd" type="Telerik.Web.UI.WebResource" />   
    </handlers> 
</system.webServer> 
<location path="Secured"> 
    <system.webServer> 
    <directoryBrowse enabled="false" /> 
    </system.webServer> 
</location> 
</configuration> 

여기에 내가 추가해야 할 내용이 있습니다. 이전에 잘 작동했지만 지금은 오류가 발생합니다. 당신은 인정받을 수 있습니다.

답변

3

귀하의 web.config는 문서에서 필요한 구성 부품 부족 :

구성 IIS 7.0 Windows Server 2008에서, Win7에 윈도우 비스타 사용에 특정한 일부 구성이 있습니다

IIS7, 적절한 코드 스 니핏을 아래 표시된 web.config에 배치합니다.

<system.webServer> 
    <validation validateIntegratedModeConfiguration="false"/> 
    <modules> 
    <add name="Spring" type="Spring.Context.Support.WebSupportModule, Spring.Web"/> 
    </modules> 
    <handlers> 
    <add name="SpringPageHandler" verb="*" path="*.aspx" type="Spring.Web.Support.PageHandlerFactory, Spring.Web"/> 
    <add name="SpringWebServiceHandler" verb="*" path="*.asmx" type="Spring.Web.Services.WebServiceHandlerFactory, Spring.Web" /> 
    <add name="SpringContextMonitor" verb="*" path="ContextMonitor.ashx" type="Spring.Web.Support.ContextMonitor, Spring.Web"/> 
    </handlers> 
</system.webServer> 

http://www.springframework.net/doc-latest/reference/html/web.html#d4e7051