.Net IIS 使用总结(入门级)

前段时间小折腾了.net项目在IIS上发布,之前没有经验,走了不少弯路,现在做个小总结(环境为ASP.NET4.0 + IIS7.5)

①将项目打包发布到IIS上,浏览器访问没有显示正常页面,显示成目录(Directory)的形式

一般来说是ASP.NET未注册到IIS中的原因,命令行执行【%windir%\Microsoft.NET\Framework64\v4.0.30319\aspnet_regiis.exe -ir】,进行注册即可

问题可参考http://stackoverflow.com/questions/2374957/asp-net-mvc-on-iis-7-5


②Log4net的使用(项目是MVC3结构,以此为例)

首先http://logging.apache.org/log4net/下载log4net的包,并导入到工程当中

然后web.config文件中加入以下内容:

  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net" />
  </configSections>
  <log4net>
    <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender" >
      <file value="D:\web.log" />
      <appendToFile value="true" />
      <rollingStyle value="Size" />
      <maxSizeRollBackups value="30" />
      <maximumFileSize value="50MB" />

      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date [%thread] %-5level %logger [%ndc] - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="INFO" />
      <appender-ref ref="RollingLogFileAppender" />
    </root>
  </log4net>

注意:上段配置得加到config文件内的最上端,否则可能会有错误


最后就是对使用此Log工具的说明了,

在Global.asax的Application_Start方法中加入

log4net.Config.DOMConfigurator.Configure();

或者,在项目的AssemblyInfo.cs文件中或使用到的类前面加入声明:

[assembly: log4net.Config.XmlConfigurator(Watch = true)]
namespace Log4NetDemo

具体的配置解释可参照这个博客http://blog.csdn.net/zhoufoxcn/article/details/2220533


③使用了log4net却无法生成log文件

可能是文件夹的权限问题,给目标文件夹加上 写权限即可(一般就是本用户下的权限)


④ASP.NET发布到IIS 出现Access is denied的错误

这个问题比较恶心,现象为:

环境:IIS7.5 + .NET4.0 + Windows Server 2008 客户提供的server环境,在开发环境中,前期发布并未出现问题,频繁发布后出现“コンパイル エラー メッセージ: CS0016: 出力ファイル 'C:Windows\Microsoft.NET\Framework64v4.0.30319\Temporary ASP.NET Files\root\3b10b4032a5c4767\App_global.asax.cio01c3s.dll' に書き込めませんでした -- 'アクセスが拒否されました。 ' ”的问题,而同样地发布包在本机和其他server上(RC环境,很“干净”,未频繁发布)上就不会出现。

这个还是权限问题!

就是给C:\Windows\Microsoft.NET\Framework64\v4.0.30319\Temporary ASP.NET Files和C:\Windows\Temp这个两个文件夹加上权限,NET WORK、IIS USER用户加上即可,不过一般自己所在用户权限加上就行。但是要注意的是,确认环境变量中 %TEMP% 指定的具体地址,这个变量是指向真正的"C:\Windows\Temp",之前一直没找对就是因为客户server上自定义了TEMP的路径,权限一直加错了地方。

为什么TEMP目录要加权限?官网有这么句“コンパイラは、一時的な ASP.NET ファイル フォルダーにファイルをコピーする前に、 TEMPおよびTMP変数をポイントするフォルダー内の一時ファイルを生成します。”供参考

另外,.net的web项目,web.config文件中<compilation>节点可以指定临时编译文件目录,形式类似如下: <compilation tempdirectory="D:\tem_file\" targetframework="4.0">***</compilation>


暂时这么多,以后遇到继续补充...


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值