小编Jos*_*son的帖子

部署项目中缺少项目依赖项

我有一个VS2008部署项目,它为几个Windows服务构建了一个安装程序.

每个服务引用几个不同的项目:

CustomerName.MailSendingService
 -> CustomerName.Network
 -> CustomerName.Data
 -> CustomerName.Security

CustomerName.ProductIntegrationService
 -> CustomerName.Core
 -> CustomerName.Security

Windows服务项目,它们引用的项目以及部署项目都在同一个VS2008解决方案中.

我在部署项目的文件系统编辑器中添加了Windows服务项目的主要输出.

我的期望是Windows服务项目的主要输出将包括来自引用项目的DLL.但是,在构建部署项目时,缺少其中一个引用项目的DLL.(CustomerName.ProductIntegrationService缺失CustomerName.Security)

疯狂地,存在由Windows服务引用的其他项目的DLL; 只缺少一个项目的输出.

(编辑)我已经验证了引用在参考属性窗口中设置为Copy Local.引用项目的DLL放在Windows服务项目的bin\Release文件夹中,但未打包在为部署项目构建的MSI文件中.

(编辑2)根据Joseph Daigle的建议,我检查了依赖项是在主要输出的依赖项列表中,并且它没有标记为"排除",因此这似乎不是导致此问题的原因.

为什么只丢失一个项目的输出?

deployment-project visual-studio-2008

12
推荐指数
1
解决办法
8906
查看次数

未注册的事件处理程序会导致内存泄漏

我正在维护一个内存泄漏的Web应用程序.

基于我使用Red Gate ANTS内存分析器的调查,我很确定内存泄漏是由业务层中的事件处理程序引起的.

有一个集合在每个添加的项目上注册一个事件处理程序,以便集合可以在项目的日期更改时重新排序.看来这个事件处理程序是罪魁祸首.

此应用程序的业务层非常复杂,因此将集合及其项目保留在内存中会拖拽其他一些对象.

我在集合上实现了IDisposable,并在Dispose方法中删除了事件处理程序:

p.OnPunchDateChanged -= this.OnPunchDateChanged;
Run Code Online (Sandbox Code Playgroud)

但是,实现IDisposable并没有帮助,因为我无法在using或try/catch块中包装对集合的所有引用.此集合由我无法控制的应用程序部分使用.

如何清除这些事件处理程序以解决此内存泄漏?

c# asp.net events idisposable red-gate-ants

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

现有Web应用程序的性能测试 - 有用的工具?

我正在维护一个存在性能问题的Web应用程序.

我想记录一系列操作,然后在我进行更改并比较页面加载时间后回放这些操作,以便我可以量化性能改进.

Selenium IDE完成了录制和播放动作所需的功能,但我还没有找到一种简单的方法来记录时间.

有没有一种使用Selenium记录和比较页面加载时序的好方法?是否有更好的工具可供使用?

performance selenium

6
推荐指数
2
解决办法
4083
查看次数

UpdatePanel不执行部分页面更新,并且IsInAsyncPostBack始终为false

我正在尝试使用UpdatePanel,但无法使部分页面更新生效.

当我查看ScriptManager的IsInAsyncPostBack属性时,它总是错误的.

这是一个重现问题的页面.它有一个ScriptManager,一个UpdatePanel,一个更新面板中的LinkBut​​ton,以及一个通过Triggers集合连接到UpdatePanel的Button.

<%@ Page Language="C#" %>
<script runat="server">
    protected void Page_Load(object sender, EventArgs e)
    {

        Label1.Text = DateTime.Now.ToString();

        if (IsPostBack)
            Label1.Text += " - Postback!";
        if (ScriptManager1.IsInAsyncPostBack)
            Label1.Text += " - Async!";
    }
</script>

<html xmlns="http://www.w3.org/1999/xhtml">
<body>
    <form id="form1" runat="server">
            <asp:ScriptManager ID="ScriptManager1" EnablePartialRendering="true" runat="server"  />

            <asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Conditional" runat="server">
                <ContentTemplate>Panel 1:<asp:Label runat=server ID=Label1 /><br />
                <asp:LinkButton runat=server ID="LinkButton1" Text="Update!"></asp:LinkButton></ContentTemplate>
                <Triggers><asp:AsyncPostBackTrigger ControlID="Button1" EventName="Click" /></Triggers>
            </asp:UpdatePanel>
            <asp:Button ID="Button1" Text="Refresh Panel 1" runat="server" UseSubmitBehavior=false />

    </form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

如果我运行此代码并单击其中一个按钮,我会看到"Panel 1:2/8/2010 3:38:41 PM …

c# asp.net updatepanel scriptmanager

3
推荐指数
1
解决办法
4516
查看次数

通过代码查找程序集的公钥

如何通过代码找到 .NET 程序集的公钥?

从命令行,我可以使用 sn -Tp assemblyName来查找公钥。

代码中的等效项(C# 或 VB)是什么?

.net public-key

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