我正在尝试创建一个简单的Windows服务,它维护一个整数队列,并通过WCF调用接受来自其他应用程序的新整数.我当前的实现似乎为每个与它通信的应用程序维护单独的队列,这不是我想要的.
我首先按照Microsoft的说明,如何:在托管Windows服务中托管WCF服务.
我的WindowsService类看起来像这样:
public class MyWindowsService : ServiceBase{
public ServiceHost serviceHost = null;
public MyWindowsService(){
ServiceName = "AdHocReportService";
}
public static void Main(){
ServiceBase.Run(new MyWindowsService());
}
protected override void OnStart(string[] args){
if (serviceHost != null)
serviceHost.Close();
serviceHost = new ServiceHost(typeof(MyService));
serviceHost.Open();
}
protected override void OnStop(){
if (serviceHost != null){
serviceHost.Close();
serviceHost = null;
}
}
}
Run Code Online (Sandbox Code Playgroud)
在我的Service类中,我有一个队列和一个Add方法.add方法在add之后返回队列中的项目数.代码如下所示:
public class MyService : IMyService
{
private Queue<int> myQueue= new Queue<int>();
public int Add(int reportId)
{
myQueue.Enqueue(reportId);
return myQueue.Count;
} …Run Code Online (Sandbox Code Playgroud) 您对SQL Server的对称键功能有何看法?具体来说,我有两个问题:
哪一组功能更好... EncryptByKey或EncryptByPassPhrase?
这两个功能都需要某种密码。在典型的Web应用程序体系结构中,该密码应该存储在哪里?(即,在数据库中的存储过程中进行硬编码,或在Web应用程序中将其存储为配置设置)
我很想看看这些功能的最佳实践。
我有工作:
运行程序
它有以下步骤:
第 1 步:做某事
第 2 步:做其他事
第 3 步:电子邮件
在第 3 步中,我有:
EXEC spSendSuccessEmail -- and here's where I want to pass the job name.
Run Code Online (Sandbox Code Playgroud)
下面是上面存储过程的代码:
ALTER PROCEDURE [dbo].[spSendSuccessEmail] @JobName VARCHAR(30)
AS
BEGIN
SET NOCOUNT ON;
DECLARE @EmailBody VARCHAR(50)
SET @EmailBody = @JobName + ' ran successfully'
BEGIN TRY
EXEC msdb.dbo.sp_send_dbmail
@profile_name = 'DBTeam',
@recipients = 'user@universe.com',
@copy_recipients = 'user2@universe.com',
@subject = 'Process Complete',
@body = @EmailBody,
@importance = 'Normal',
@sensitivity = 'Normal';
END TRY
BEGIN CATCH …Run Code Online (Sandbox Code Playgroud) 在我的MVC表单上,我需要将一个下拉框绑定到我的ViewModel上的枚举.我发现这样做的最好方法在这里描述.
它似乎首先工作,但现在我已经在我的表单中添加了验证,我发现它没有绑定回ViewModel.
这是我的剃刀代码:
<div class="editor-field">
@Html.DropDownListFor(model => model.response,
new SelectList(Enum.GetValues(typeof(Vouchers.Models.ResponseType))),
"Please Select")
</div>
Run Code Online (Sandbox Code Playgroud)
这是我对该领域的视图模型定义:
[DisplayName("Response")]
[Range(1, int.MaxValue, ErrorMessage = "You must select a response before submitting this form.")]
public ResponseType response { get; set; }
Run Code Online (Sandbox Code Playgroud)
问题是我无法提交表格; 即使从我的下拉列表中选择响应后,也会显示Range属性的Validation错误消息,并且客户端验证会阻止表单提交.
我相信这是因为下拉列表的SelectList只包含枚举的字符串名称,而不包含基础整数值.
我怎么解决这个问题?
sql ×2
sql-server ×2
.net ×1
asp.net ×1
asp.net-mvc ×1
c# ×1
encryption ×1
security ×1
sql-job ×1
t-sql ×1
token ×1
validation ×1
wcf ×1