Tag: 服务

C#控制台/服务器访问网站

我正在开发一个C#项目,我需要从没有API或Web服务的安全网站获取数据。 我的计划是登录,进入我需要的页面,并解析HTML以获取我需要登录数据库的数据位。 现在我正在使用控制台应用程序进行测试,但最终会将其转换为Azure Service总线应用程序。 为了得到任何东西,你必须登录他们的login.cfm页面,这意味着我需要在页面上加载用户名和密码输入控件,然后单击提交按钮。 然后导航到我需要解析的页面。 由于我没有“浏览器”来解析控件,我试图使用各种C#.NET类来访问页面,设置用户名和密码,然后单击“提交”,但似乎没有任何工作。 我可以看到的任何例子,或者我应该审查的.NET类都是为这类项目设计的? 谢谢!

在不使用WCF中的CallBack的情况下将数据推送到客户端

是否可以在不使用回调的情况下将数据推送到WCF服务中的客户端? 场景: 有2个客户端消费服务。 客户端1发送消息,然后客户端2获取客户端1发送的消息。

如何发现C#中的appsettings发生了变化?

有没有办法(事件将是最好的选择),这将注意到我的代码应用程序设置已更改? 我正在尝试实现一个Windows服务,管理员应该在不重新启动服务的情况下“在线”更改行为。 我在考虑FileSystemWatcher ,但在这个选项中我将硬编码路径和名称配置文件,所以也许有其他方法这样做? UPDATE 下面的答案建议使用AppDomain.CurrentDomain.SetupInformation.ConfigurationFile但如果我有这样定义的外部配置文件,则此选项将不起作用:

如何从Windows 7服务启动会话1中的进程

我在Windows 7中运行了一项服务。在Windows 7中,所有服务都在会话0中运行。从该服务我想创建一个交互式用户会话(在会话0以外的会话中)并在该会话中启动一个应用程序。 我的问题是,当我调用LogonUser启动交互式用户会话,然后使用CreateProcessAsUser启动应用程序时,应用程序最终在会话0中运行。 我的所有代码都是C#。 这是相关的代码: [DllImport(“advapi32.dll”, SetLastError=true)] static extern bool LogonUser( string principal, string authority, string password, UInt32 logonType, UInt32 logonProvider, out IntPtr token); [DllImport(“advapi32.dll”, SetLastError=true)] static extern bool CreateProcessAsUser( IntPtr hToken, string lpApplicationName, string lpCommandLine, IntPtr lpProcessAttributes, IntPtr lpThreadAttributes, bool bInheritHandles, int dwCreationFlags, IntPtr lpEnvironment, string lpCurrentDirectory, ref STARTUPINFO lpStartupInfo, ref PROCESS_INFORMATION lpProcessInformation); […]

调试本机代码

我有一个C#服务,它调用最初用VC6编写的C DLL。 我试图检查DLL中有一个错误。 在尝试调试工作的噩梦之后,我最终将dll添加到包含C#服务的VS2005解决方案中,并添加了必要的_CRT_SECURE_NO_WARNINGS 。 使用’installutil.exe’工具注册该服务的调试版本。 通过调用System.Diagnostics.Debugger.Break();我可以让调试器在输入dll的行之前中断System.Diagnostics.Debugger.Break(); 。 我在网上发现了一些关于调试非托管代码的指令,并启用了“启用非托管代码调试”复选框,我还尝试打开选项 – >调试 – >本机’加载DLL导出’和’启用RPC调试’(即使它不是COM)。 我还将debug dll和.pdb复制到与服务相同的bin目录中。 但是,非托管代码没有进入我真正需要的代码。 更新 :我在DLL属性中找到了调试类型,并根据几个站点上的建议将其设置为“混合”,但无济于事。 UPDATE2 :我的项目现在将调试dll和pdb发送到与调试服务相同的目录。 仍然无法调试DLL。

使用Serilog时如何在输出消息中获得丰富的属性

我正在尝试使用Serilog将丰富的属性输出到渲染的消息中: private static Tester GetTester() { return new Tester {Count = 7, Name = “Redmond”}; } Log.Logger = new LoggerConfiguration() .MinimumLevel.Verbose() .Enrich.WithProperty(“Site”, “Dan Local”) .WriteTo .ColoredConsole() .CreateLogger(); var tester = GetTester(); Log.Verbose(“{Site} – This is verbose {@tester}”, tester); Log.Verbose(“This is verbose {@tester} – {Site}”, tester); 第一个日志语句输出: 2014-08-19 10:02:25 [Verbose] “SeriLogTest.Tester” – This is verbose {@tester} […]

如何将Noda Time(或任何第三方类型)对象作为参数传递给WCF?

我有一个在OperationContract参数中使用Noda Time类型( LocalDate和ZonedDateTime )的服务,但是当我尝试发送例如LocalDate(1990,7,31) ,服务器接收一个具有默认值(1970/1/1)的对象。 客户端或服务器不会引发任何错误。 以前它适用于相应的BCL类型( DateTimeOffset )。 我理解NCF时间类型可能不会被WCF“知道”,但我看不出我应该如何添加它们。 我在关于已知类型的文档中检查了此页面 ,但它没有帮助。 有没有办法做到这一点,以避免BCL类型的脏(可能不完整)手动转换/序列化? 谢谢。

服务导致SCM错误“报告无效的当前状态0”

我写了一个servlets,它充当本地网络服务器。 为了编写服务,我在MSDN上学习了如何使用ServiceBase类编写服务。 但是当我注册并启动服务时,我收到错误消息,如下所示。 我在开始和服务停止时得到了其中两个错误消息。 (示例=服务名称)。 示例服务已报告无效的当前状态0。 这是我服务的最小样本,包含所有相关部分。 代码以MSDN教程中提供的枚举和结构定义开头: public enum ServiceState { SERVICE_STOPPED = 0x00000001, SERVICE_START_PENDING = 0x00000002, SERVICE_STOP_PENDING = 0x00000003, SERVICE_RUNNING = 0x00000004, SERVICE_CONTINUE_PENDING = 0x00000005, SERVICE_PAUSE_PENDING = 0x00000006, SERVICE_PAUSED = 0x00000007, } [StructLayout(LayoutKind.Sequential)] public struct ServiceStatus { public long dwServiceType; public ServiceState dwCurrentState; public long dwControlsAccepted; public long dwWin32ExitCode; public long dwServiceSpecificExitCode; public […]

如何将Webcredentials从活动用户传递到Windows服务?

我需要从当前登录用户获取默认凭据并将其传递给我的Windows服务以检查互联网连接并将文件上传到Dropbox。 我不希望用户每次都确认他/她的凭据。 那么如何才能获得当前活动用户的代理设置+用户名+密码? 这是我的代码,用于检索当前用户 private static string UserName() { string userName = null; ManagementScope ms = new ManagementScope(); ObjectQuery qry = new ObjectQuery(“Select * from Win32_ComputerSystem”); ManagementObjectSearcher search = new ManagementObjectSearcher(ms, qry); ManagementObjectCollection result = search.Get(); foreach (ManagementObject rec in result) userName = rec[“UserName”] as string; string[] buffer = userName.Split(‘\\’); return buffer[1]; } 并且此代码用于获取WindowsIdentity: private […]

如何将SignalR添加到我的WCF服务和MVC 4客户端应用程序?

我正在使用WCF服务为ASp.net MVC 4客户端应用程序开发项目。 我在MVC中创建了一个控制器并在其中添加了一个视图。 而且,我通过ajax和jquery从视图传递数据。来自服务的响应,结果数据值存储在一个html元素中。就像我实现的那样。一部分已经完成。第二部分是 我有想法在WCF和MVC4服务中添加functionok SignalR? 我认为SignalR是一个自托管? 我如何在WCF和MVC4中为signalR创建一个api。我的代码是。 MVC控制器: – using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; namespace MVC4.Controllers { public class SampleController : Controller { public ActionResult Index() { return View(); } } } 视图:- @{ Layout = null; } Index $(document).ready(function () { var u = $(“.user”); var l […]