2012-10-01 8 views
0

WebDAV를 사용하여 IIS 7.5 서버에 ASP.Net 3.5 사이트를 게시하려고 할 때마다 구성 파일이 비어 있습니다. 원인은 아래 코드에서 볼 수있는 providerOption 요소입니다.게시 ASP.NET 3.5 사이트 web.config emptyof providerOptions 요소로 인해

<system.codedom> 
<compilers> 
    <compiler language="c#;cs;csharp" extension=".cs" warningLevel="4" type="Microsoft.CSharp.CSharpCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
    <providerOption name="CompilerVersion" value="v3.5"/> 
    <providerOption name="WarnAsError" value="false"/> 
    </compiler> 
    <compiler language="vb;vbs;visualbasic;vbscript" extension=".vb" warningLevel="4" type="Microsoft.VisualBasic.VBCodeProvider, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
    <providerOption name="CompilerVersion" value="v3.5"/> 
    <providerOption name="OptionInfer" value="true"/> 
    <providerOption name="WarnAsError" value="false"/> 
    </compiler> 
</compilers> 

C에서 FX_schema.xml 파일 : \ WINDOWS \ SYSTEM32 \ inetsrv를 \ 설정 스키마는 사이트의 Web.config의 유효성을 검사하는 데 사용되는 그것은 일부로서 providerOptions 포함되어 있지 않습니다 \ 거기 XML의. 나는 이런 식으로 뭔가를 추가하여 허용 할 수있는 파일을 수정할 수 있도록 뭔가를 추가 할 수 있습니다

<collection addElement = "providerOption"> 
    <attribute name = "name" required = "true" isUniqueKey = "true" type = "string" /> 
    <attribute name = "value" required = "true" type = "string" /> 
</collection> 

하지만 스키마 파일에 쓸 수있는 권한이 없습니다. 이것은 또한 다른 사람들이보아야하는 것으로 보이며 빠른 검색은 일부 사람들을 발견합니다. 내가 본 유일한 옵션은 "그냥 코드 섹션을 삭제하는 것"입니다. 즉 LINQ와 같은 3.5 가지가 작동하지 않으므로 비 시동입니다.

그래서 providerOption 요소를 그대로 사용하여 IIS 7.5에 웹 사이트를 게시하려면 어떻게해야합니까?

답변

0

글쎄, 구체적인 것을 찾을 수 없기 때문에 방금 전의 해결책을 찾았습니다. 나는 내 파일을 만들어서 스키마 파일과 함께 배치했습니다. 나는 그것을 발명의 이름 ThreeFive.xml이라고하고 C : \ Windows \ System32 \ inetsrv \ config \ schema에 두었다. 다음과 같이 파일의 전체 내용은 다음과 같습니다

<configSchema> 
    <sectionSchema name="system.codedom"> 
     <element name="compilers"> 
      <collection addElement="compiler" removeElement="remove" clearElement="clear"> 
       <attribute name="language" type="string" isCombinedKey="true" /> 
       <attribute name="extension" type="string" isCombinedKey="true" /> 
       <attribute name="type" type="string" /> 
       <attribute name="warningLevel" type="int" /> 
       <attribute name="compilerOptions" type="string" /> 
       <collection addElement="providerOption"> 
        <attribute name="name" required="true" isUniqueKey="true" type="string" /> 
        <attribute name="value" required="true" type="string" /> 
       </collection> 
      </collection> 
     </element> 
    </sectionSchema> 
</configSchema> 

나는 다음 확인 설정을 일부 LINQ를 appconfig가 설정에서 정보를 검색하고 한 3.5 사이트를 게시하고 3.5이 적용되었다. 구성 파일을 숨기고 LINQ 예상대로 작동하고 있으므로이 솔루션을 호출 할 유혹입니다.