小编Dev*_*ult的帖子

MSDeploy和"维护站点"页面

我是MSDeploy和IIS管理员的新手.

为了显示"维护中的网站"页面,我们正在寻找两种选择.

1)有一个app_Offline.htm页面,并在维护开始时将其同步到服务器.

2)创建一个具有完全不同的站点的单独文件夹(它可以显示比app_offline页面更多的动态信息).在维护期间,建议我们在更新站点时更改站点的虚拟文件夹映射以指向此其他文件夹.

有没有办法使用MSDeploy将虚拟文件夹更改为指向另一个文件夹?有没有其他方法通过脚本执行此操作,而不必去每个服务器并手动更改文件夹?

asp.net iis-7 msdeploy

9
推荐指数
1
解决办法
2010
查看次数

.Net自定义跟踪文件名

我希望我的应用程序写出名为MachineName_UserName_yyyymmdd_hhmmss.txt的不同跟踪文件,其中用户名是当前登录的用户,时间是应用程序的开始时间..Net侦听器TextWriterTraceListener似乎只支持配置文件中指定的硬编码文件名.有没有办法在不编写自定义跟踪侦听器的情况下执行此操作.

假设我必须编写一个自定义跟踪侦听器,我已经实现了一个这样的tracelistener:

Imports System.Diagnostics

Public Class MyCustomTraceListener
    Inherits TextWriterTraceListener

    Public Sub New()
        'Need to do it this way as the Base constructor call has to be the first statement
        MyBase.New(String.Format("AppNameTraceFile_{0}_{1}_{2}{3}{4}-{5}{6}{7}.txt", _
                                                       Environment.MachineName, _
                                                       Environment.UserName, _
                                                       DateTime.Now.ToString("yyyy"), _
                                                       DateTime.Now.ToString("MM"), _
                                                       DateTime.Now.ToString("dd"), _
                                                       DateTime.Now.ToString("HH"), _
                                                       DateTime.Now.ToString("mm"), _
                                                       DateTime.Now.ToString("ss")))
        Me.IndentSize = 4
    End Sub

End Class
Run Code Online (Sandbox Code Playgroud)

在配置文件中,我已经像这样配置了跟踪源:

  <system.diagnostics>
    <trace autoflush="true"/>
    <sources>
      <source name="MyTraceSource"
              switchName="mySwitch"
              switchType="System.Diagnostics.SourceSwitch" >
        <listeners>
          <clear/>
          <add name="MyTraceListener"
            type="MyNameSpace.MyCustomTraceListener"
            traceOutputOptions="ProcessId, DateTime, Callstack" />
        </listeners>
      </source>
    </sources>
    <switches>
      <add name="mySwitch" value="Warning" /> …
Run Code Online (Sandbox Code Playgroud)

.net vb.net trace

5
推荐指数
1
解决办法
2703
查看次数

Visual Studio 2010网站项目中的隐藏参考

当我在VS 2010中创建一个新的网站项目(而不是Web应用程序)时,它似乎已经引用了一些dll.如果我尝试添加System,System.Core,System.Data,我会收到错误,指出"网站已经引用了程序集'System.Core'"等.当我尝试使用其中一个程序集中的数据类型时,它似乎被认可,我得到intellisense和所有.但我无法在Web.Config中看到这些dll,也没有在网站属性中打开引用标签.是否有任何新的秘密地方将这些"默认"引用添加到?

背景资料:

我试图找出这些引用的主要原因是我已经将一个项目从VS 2008迁移到了2010,并且我遇到了需要引用System.Data.DatasetExtensions的构建错误.但是,引用存在于web.config中,我还可以在项目属性中看到引用.我还检查了它与构建错误具有相同的版本和相同的公钥令牌.下面是构建错误:错误BC30007:程序集'System.Data.DataSetExtensions,Version = 3.5.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'所需的引用包含基类'System.Data.TypedTableBase`1'.在项目中添加一个.

这是web.config中的引用:

<?xml version="1.0"?>
<configuration>
    <system.web>
        <compilation debug="false" strict="false" explicit="true">
            <assemblies>
                <add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089"/>
            </assemblies>
        </compilation>
        <authentication mode="Windows"/>
    </system.web>
</configuration>
Run Code Online (Sandbox Code Playgroud)

如果有人能帮助我解决这个问题,我将非常感激.

谢谢.

注意:1.我没有选择转移到Web应用程序项目.2.在VS 2008中,GAC的引用存储在Web.Config中,项目引用存储在解决方案文件中,其他dll引用存储为bin文件夹中的.refresh文件.我无法在上述任何地方找到这些dll.

reference visual-studio-2010 vs-web-site-project

4
推荐指数
1
解决办法
4794
查看次数

数据集和内存泄漏

我试图找出使用DataSet/ DataTable和之后正确清理的最佳方法.

关于导致记忆释放的原因,我有点困惑.我用一个测试应用程序测试了我的理论,其中我DataTable在一个循环中多次填充相同的内容,并在3个强制GC收集后查看Windows的任务管理器以获取内存占用.

我发现的是:

  1. 如果我没有调用ClearDispose设置DataTable变量Nothing,则任务管理器中的最终内存消耗大约为30k.

  2. 如果我只是将变量设置为Nothing循环内部,则最终内存大约为15k.
    问题:为什么设置变量会Nothing产生影响?

  3. 如果我只调用Dispose循环内的方法,那么最终的内存大约是19k.

  4. 如果我只Clear在循环内部调用,则最终内存大约为16.5k.事实上,即使在之后它也没有改变GC.Collect.

如果有人可以分享DataSet在不再需要时使用和清理的最佳方式,我将非常感激.

示例代码如下所示.

Imports System.Data.SqlClient;
Public Class Form1

    Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
        Test()

        GC.Collect()
        GC.Collect()
        GC.Collect() 'Throw in one more 
    End Sub


    Private Sub Test()
        Dim oDA As SqlDataAdapter = Nothing
        Dim oConn As SqlConnection = Nothing
        Dim oCommand As SqlCommand …
Run Code Online (Sandbox Code Playgroud)

.net vb.net memory-leaks memory-management dataset

2
推荐指数
1
解决办法
3334
查看次数