小编Cia*_*ill的帖子

如何让NLog写入数据库

我正在尝试让NLog登录到我的数据库日志表但无济于事.我确定我的连接字符串是正确的,因为它与我的web.config中的其他地方一样.写出文件工作正常,所以我知道它不仅仅是NLog,而且必须是我做错了.以下是我的NLog配置:

<!-- NLOG CONFIGURATION -->
  <nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <targets>
      <target name="file" xsi:type="File" fileName="${basedir}/logs/Log ${shortdate}.txt" layout="${longdate} ${callsite} ${level}: ${message} ${exception:format=Message,StackTrace} ${stacktrace}" />
      <target type="Database" name="database" connectionstring="MyConnectionString">
        <commandText>
          insert into MyLog ([CreateDate], [Origin], [LogLevel], [Message], [Exception], [StackTrace]) values (@createDate, @origin, @logLevel, @message, @exception, @stackTrace);
        </commandText>
        <parameter name="@createDate" layout="${longdate}"/>
        <parameter name="@origin" layout="${callsite}"/>
        <parameter name="@logLevel" layout="${level}"/>
        <parameter name="@message" layout="${message}"/>
        <parameter name="@exception" layout="${exception:format=Message,StackTrace}"/>
        <parameter name="@stackTrace" layout="${stacktrace}"/>
      </target>
    </targets>
    <rules>
      <logger name="*" writeTo="file"/>
      <logger name="*" appendTo="database"/>
      <!--<logger name="*" writeTo="mail" minlevel="Error"/>-->
    </rules>
  </nlog>
Run Code Online (Sandbox Code Playgroud)

c# web-config nlog

40
推荐指数
2
解决办法
2万
查看次数

ASP.Net转发器项目命令没有被触发

好吧,我已经使用了几十次中继器而没有任何问题,但今天出现了一些问题.我有一个转发器,我正在订阅itemCommand事件,但是当我的命令运行时,页面会回发但事件不会被触发.

为了解决这个问题,我必须在每个回发上进行数据绑定.

我的中继器看起来像这样:

<asp:Repeater id="MyRepeater" runat="server" onitemcommand="MyRepeater_ItemCommand">
<ItemTemplate>
    <li>
    <asp:Label id="Label" runat="server" />
    <asp:LinkButton id="LinkButton1" runat="server" commandname="Complete" commandargument='<%# Eval("MyID") %>' text='<%# Eval("Title") %>' />
    </li>
</ItemTemplate>
</asp:Repeater>
Run Code Online (Sandbox Code Playgroud)

和我的代码隐藏是这样的:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
    SetupPage();
    }
}

private void SetupPage()
{
    // Do other stuff

    MyRepeater.DataSource = Repository.GetStuff()
    MyRepeater.DataBind();
}


protected void MyRepeater_ItemCommand(object sender, RepeaterCommandEventArgs e)
{


// Do all my stuff here
}
Run Code Online (Sandbox Code Playgroud)

除非我注释掉if(!IsPostBack)行,否则不会调用MyRepeater_ItemCommand.一旦被注释掉并且转发器在每个回发上获得数据绑定,它就可以正常工作.我已经在很多其他页面中完成了这个,但就此而言似乎没有用.

其他人遇到这种行为或有解决方案吗?

asp.net repeater itemcommand

20
推荐指数
3
解决办法
3万
查看次数

Ninject - 如何以及何时注射

对于DI和ninject来说,我是一个新手,我正在努力解决实际注入何时发生以及如何开始绑定的问题.

我已经在我的Web应用程序中使用它并且它在那里工作正常,但现在我想在类库中使用注入.

说我有这样一个类:

public class TestClass
{
    [Inject]
    public IRoleRepository RoleRepository { get; set; }
    [Inject]
    public ISiteRepository SiteRepository { get; set; }
    [Inject]
    public IUserRepository UserRepository { get; set; }

    private readonly string _fileName;

    public TestClass(string fileName)
    {
        _fileName = fileName;
    }

    public void ImportData()
    {
        var user = UserRepository.GetByUserName("myname");
        var role = RoleRepository.GetByRoleName("myname");
        var site = SiteRepository.GetByID(15);
        // Use file etc
    }

}
Run Code Online (Sandbox Code Playgroud)

我想在这里使用属性注入,因为我需要在构造函数中传入一个文件名.我是否正确说,如果我需要传入一个构造函数参数,我不能使用构造函数注入?如果我可以使用带有附加参数的构造函数注入,我该如何传递这些参数?

我有一个由Test类使用的控制台应用程序,如下所示:

class Program
{
    static void Main(string[] args)
    {
        // NinjectRepositoryModule Binds my IRoleRepository …
Run Code Online (Sandbox Code Playgroud)

dependency-injection ninject

18
推荐指数
2
解决办法
2万
查看次数

System.Web.Configuration.MachineKeySection.GetDecodedData中的"无法验证数据"异常是什么意思

我已经开发了一个测试localhost Cassini的网站,它一直运行良好,现在当我部署到我的网络服务器时,我间歇性地得到以下错误:

Global.Application_Error错误:请求期间发生异常: http://....blah.aspx无法验证数据.System.Web.Configuration.MachineKeySection.GetDecodedData(Byte [] buf,Byte [] modifier,Int32 start,Int32 length,Int32&dataLength)at System.Web.UI.ObjectStateFormatter.Deserialize(String inputString)HttpApplication.RaiseOnError => EventHandler .Invoke => Global.Application_Error

这是在我的global.asax中捕获的.我四处搜寻但找不到原因.这个异常是在非常简单和小的webforms中抛出的.该网站不在webfarm中托管.

2页似乎间歇性地导致此错误,其中一个在ViewState中存储bool,但除此之外不进行修改.

有没有人遇到过这个?

asp.net exception

8
推荐指数
2
解决办法
3万
查看次数

DI与Ninject在类库中

我在我的Web应用程序中成功使用Ninject NinjectHttpApplication,方法是NinjectHttpModule从我的web.config中导出我的Global

我现在要做的是在我的一个类库中使用DI,我不知道如何解决这个问题.我有以下虚拟课程:

/// <summary>
/// Testing Ninject DI in a class library
/// </summary>
public class Class1
{
    [Inject]
    ICustomerRepository CustomerRepository { get; set; }

    public string SomeText { get; set; }

    public Class1(string text)
    {
        MyConfig config = new MyConfig();
        config.Configure();

        SomeText = text;
    }

    public Customer GetCustomer()
    {
        var customer = CustomerRepository.GetCustomer();
        return customer;
    }
}

public class MyConfig
{
    public IKernel Configure()
    {
        IKernel kernel = new StandardKernel(new NinjectRepositoryModule());
        return kernel;
    }
} …
Run Code Online (Sandbox Code Playgroud)

dependency-injection ninject

7
推荐指数
1
解决办法
9838
查看次数

Azure Devops - 无法在 Powershell 中设置变量

我有一个 Azure Devops 发布管道(使用经典编辑器而不是 yaml),并且在内联 powershell 脚本中设置变量时遇到问题。脚本的相关部分是这样的:

Write-Host "Web is $web"
Write-Host "App is $app"

Write-Host "##vso[task.setvariable variable=MyWebEnv;]$web"
Write-Host "Set Web to $($MyWebEnv)"

Write-Host "##vso[task.setvariable variable=MyAppEnv;]$app"
Write-Host "Set App to $(MyAppEnv)" 
Run Code Online (Sandbox Code Playgroud)

日志文件表明 my$web$app变量保存正确的值,但是该设置不起作用。

$($env:MyWebEnv)我尝试以和格式写出值$(MyWebEnv),这两种格式都表明 ADO 变量尚未正确设置。

我的变量是在管道的变量选项卡中定义的。它在排队时设置为可设置。我尝试过在定义中未设置任何值并设置初始值,我可以看到初始值不会被覆盖。

我尝试在自托管代理和 Azure Pipelines 托管代理上运行此命令 - 结果相同。我有另一个发布管道,它可以执行类似的操作,但没有出现问题。

我正在尝试在后续阶段中使用该变量。

我不想将变量写入文件或任何内容,因为我想使用变量来控制阶段是否运行。

编辑:根据李维的评论,我尝试isOutput=true在同一阶段的后续步骤中添加和检查变量 - 即使在后续步骤中它也不可见:

管道输出

=================================================== ======================= 编辑2:我一定在某个地方有一个不可见的角色。我正在外部编辑器中编写 powershell(这样我就有更多空间)并粘贴到 ADO 中的内联文本框中 - 当我在编辑器中输入完全相同的内容时,它开始工作 - 有点。

我现在可以设置该变量,它会出现在下面的任务中,但我真正想要的是在下一阶段使用它 - 在 IIS 部署组中控制 IIS 服务器 A 运行,但 IIS 服务器 B 不运行。我试图在附加选项运行表达式中执行此操作。 …

azure-devops azure-pipelines

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

动态地向用户控件添加控件

我想在事件处理程序(如按钮单击事件)中向用户控件添加控件.

我正在尝试动态添加datagridview查找控件,但我无法使其工作,所以我尝试添加一个带有此代码的按钮:

private void btnCreateNewButton_Click(object sender, EventArgs e)
{
    Button btn = new Button();
    btn.Location = new Point(100, 640);
    btn.Size = new Size(100, 30);
    btn.Text = "Click Me";
    btn.Click += (s, ea) => MessageBox.Show("New button clicked");
    this.Controls.Add(btn);
}
Run Code Online (Sandbox Code Playgroud)

当我单击"创建新按钮"时,不会显示任何按钮.

如果我将完全相同的代码添加到表单而不是用户控件中,则会创建按钮并按预期显示,但在用户控件中没有任何反应.在用户控件中我也试过了

this.Parent.Controls.Add(btn) and
this.ParentForm.Controls.Add(btn) 
Run Code Online (Sandbox Code Playgroud)

但无济于事.

有人有任何想法吗?

谢谢,Ciaran.

c# user-controls winforms

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

如何在WCF和Silverlight之间共享Linq to Entities数据交换

0投票明星1

我希望能够共享我的datacontracts(在linq中生成的类到实体设计器使用[DataContract]属性进行修饰.

我正在尝试使用这里详述的架构:http://www.netfxharmonics.com/2008/11/Understanding-WCF-Services-in-Silverlight-2并尝试使用'在我的silverlight项目中引用我的接口'添加链接'方法详见此处:http://www.netfxharmonics.com/2008/12/Reusing-NET-Assemblies-in-Silverlight

我遇到的问题是在我的silverlight项目中引用我的服务接口.

我的解决方案有以下项目:

ORM - 包含Linq to Entities edmx模型(namespace:company.client.Service) - 其中的类使用DataContract属性等进行修饰.

ServiceInterface - 包含接口(名称空间company.client.Service)以及对返回的类(Customer等)的ORM的引用

Service - 包含服务接口(名称空间company.client.Service)的实现,并引用ServiceInterface和类的ORM.

ServiceHost - 包含http://www.netfxharmonics.com/2008/11/Understanding-WCF-Services-in-Silverlight-2中推荐的.svc文件

WebSLHost - silverlight应用程序的主机

Gui - 银色GUI.

我希望所有的项目都是标准的.net程序集,当然除了silverlight gui.

当我尝试添加到我的服务接口文件的链接时(如http://www.netfxharmonics.com/2008/12/Reusing-NET-Assemblies-in-Silverlight中所示),它会发出一个编译错误,指出它可以'找到ORM并且无法识别我的实体类型.

我希望能够通过我的服务和silverlight客户端将linq生成的数据转换为实体生成器,所以如果有人有任何想法,我会很感激.

.net linq silverlight wcf web-services

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

我可以在Silverlight中使用Ninject进行Prism事件聚合吗?

我正在考虑使用Prism在Silverlight 3中做一个项目,我非常喜欢这里显示的事件聚合http://development-guides.silverbaylabs.org/Video/Prism-Eventing

所有的资源似乎都指向使用Unity with Prism而不是Ninject.在Ninject中是否有类似的聚合事件的方式?或者,如果我想使用Prism,我只限于Unity吗?

silverlight prism ninject unity-container

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