我正在使用双服务/控制台模型来测试我的服务。聚光灯下的代码是:
static void Main(string[] args)
{
// Seems important to use the same service instance, regardless of debug or runtime.
var service = new HostService();
service.EventLog.EntryWritten += EventLogEntryWritten;
if (Environment.UserInteractive)
{
service.OnStart(args);
Console.WriteLine("Host Service is running. Press any key to terminate.");
Console.ReadLine();
service.OnStop();
}
else
{
var servicesToRun = new ServiceBase[] { service };
Run(servicesToRun);
}
}
当我在调试器下运行应用程序时,使用F5,在Console.ReadLine();
行上我得到一个System.IO.IOException
,其中包含"没有足够的存储空间来处理此命令。&#34 ;
ReadLine
的唯一目的是等到有人按下某个键才能结束该应用,因此我无法想象数据来自哪里需要这么多存储空间。
答案 0 :(得分:10)
这是一项服务,其输出可能设置为Windows应用程序,将输出更改为控制台应用程序,这应该消失。
答案 1 :(得分:1)
我遇到了同样的问题,我在项目属性下找到了该设置,但是我正在创建Windows应用程序,因此无法更改应用程序类型。
这是我使用的代码。
Dim t As Task = New Task(AddressOf DownloadPageAsync)
t.Start()
Console.WriteLine("Downloading page...")
Console.ReadLine()
异步子DownloadPageAsync()
Using client As HttpClient = New HttpClient()
Using response As HttpResponseMessage = Await client.GetAsync(page)
Using content As HttpContent = response.Content
' Get contents of page as a String.
Dim result As String = Await content.ReadAsStringAsync()
' If data exists, print a substring.
If result IsNot Nothing And result.Length > 50 Then
Console.WriteLine(result.Substring(0, 50) + "...")
End If
End Using
End Using
End Using
结束子