我正在尝试让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) 好吧,我已经使用了几十次中继器而没有任何问题,但今天出现了一些问题.我有一个转发器,我正在订阅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.一旦被注释掉并且转发器在每个回发上获得数据绑定,它就可以正常工作.我已经在很多其他页面中完成了这个,但就此而言似乎没有用.
其他人遇到这种行为或有解决方案吗?
对于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) 我已经开发了一个测试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,但除此之外不进行修改.
有没有人遇到过这个?
我在我的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) 我有一个 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 不运行。我试图在附加选项运行表达式中执行此操作。 …
我想在事件处理程序(如按钮单击事件)中向用户控件添加控件.
我正在尝试动态添加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.
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生成的数据转换为实体生成器,所以如果有人有任何想法,我会很感激.
我正在考虑使用Prism在Silverlight 3中做一个项目,我非常喜欢这里显示的事件聚合http://development-guides.silverbaylabs.org/Video/Prism-Eventing
所有的资源似乎都指向使用Unity with Prism而不是Ninject.在Ninject中是否有类似的聚合事件的方式?或者,如果我想使用Prism,我只限于Unity吗?
ninject ×3
asp.net ×2
c# ×2
silverlight ×2
.net ×1
azure-devops ×1
exception ×1
itemcommand ×1
linq ×1
nlog ×1
prism ×1
repeater ×1
wcf ×1
web-config ×1
web-services ×1
winforms ×1