小编Mon*_*gix的帖子

将C#控制台应用程序转换为DLL

我正在从SOAP重写Betfair API到JSON,我开始以我之前做的方式作为控制台APP,然后从任务调度程序或win服务调用.

但是现在我被要求用代码做各种不同的工作,我不想为每个工作编写一个控制台应用程序(不同的网站需要价格,下注等)

新代码库比旧代码库大得多,我本来可以将旧系统中的4个文件复制到DLL应用程序中,然后创建各种控制台应用程序/服务来实现DLL - 但是因为它是40多个文件我不喜欢如果可能的话,我不想要复制粘贴作业.

有没有办法在VS中使用某些工具或命令轻松地将现有的控制台项目转换为类/ DLL项目?

我希望能够创建简单的应用程序

BetfairBOT myBOT = new BetfairBOT()
myBOT.RunGetPrices();
Run Code Online (Sandbox Code Playgroud)

要么

BetfairBOT myBOT = new BetfairBOT()
myBOT.RunPlaceBets();
Run Code Online (Sandbox Code Playgroud)

例如2/3行代码来实现我的应用程序注册的DLL.

所以没有复制和粘贴,我可以这样做.

我正在使用VS 2012,.NET 4.5(如果我需要依赖服务器,则为4.0),Windows 8.1

任何帮助将非常感激.

.net c# dll console-application

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

运行数据库查询而不等待结果

我需要调用一个存储过程,它需要做很多工作。

我希望能够“解雇”,例如不要等待存储过程的响应,然后再移至下一条记录,因为这会使事情变慢,并且我需要快速移动。

什么是在C#中调用存储的proc而不等待结果,返回成功状态然后移至下一条记录的最佳方法。

我希望能够快速遍历我的选择对象列表,并调用执行数据库调用的某种方法,而无需等待响应,然后再移至循环中的下一项。

它使用的是C#4.5。

我当时正在考虑使用类似

Parallel.ForEach(sqlRecordset.AsEnumerable(), recordsetRow =>
{
  // get data for selection
  // call DB to save without waiting for response / success/failure status
}
Run Code Online (Sandbox Code Playgroud)

但是我不知道这是否是最好的方法。

有想法吗?

在此先感谢您的帮助。

c# database parallel-processing loops c#-4.0

7
推荐指数
2
解决办法
6195
查看次数

错误"无法找到为主方法指定的xxxx.Program"从MS示例创建Windows服务

我按照本指南创建了一个Windows服务> http://msdn.microsoft.com/en-us/library/zt39148a(v=vs.110).aspx

但是,当我尝试在名为"Program.cs"的自动生成页面上构建它时,其中包含此代码

namespace BetfairBOTV2Service
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        static void Main()
        {
            ServiceBase[] ServicesToRun;
            ServicesToRun = new ServiceBase[] 
            { 
                new BrainiacVersion2() // not green though!!!!!
            };
            ServiceBase.Run(ServicesToRun);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到此错误"无法找到BrainiacV2.Program"为主方法指定

我做了教程告诉我的所有事情.

我有一个App.Config,一个Program.cs(上面的代码),一个BrainiacV2.cs,它包含我所有的服务代码,并像这样开始

namespace BetfairBOTV2Service
{
    public partial class BrainiacV2 : ServiceBase
    {
        public BrainiacV2()
        {
            InitializeComponent();
Run Code Online (Sandbox Code Playgroud)

我的ProjectInstaller.cs上有两个安装程序对象(名称)serviceInstaller显示名称:我的新BetfairBotV2服务名称:BrainiacVersion2

就是这样.

这是我得到的唯一错误

该解决方案称为BrainiacV2

我试过将Program.cs中的代码更改为

全新BrainiacV2()

它变成绿色但我得到了

找不到为main方法指定的BrainiacV2.Program.

我做错了什么或需要改变什么?

任何帮助将不胜感激 - 谢谢!

Win 7,64位,.NET 4.5,C#

.net windows service windows-services c#-4.0

5
推荐指数
2
解决办法
8342
查看次数

是否应定期调用GC.Collect()?

我最近发布了一篇关于日志文件阅读器由于内存不足错误而失败的文章> 内存错误归档日志文件

在我有机会尝试更简单的方法(调用日志文件的名称,其中有一个日期以防止归档)这显然意味着重写方法等,我首先尝试了垃圾收集选项,因为我从来没有使用它,例如GC.Collect的().

如果在尝试读取日志文件内容时抛出内存错误,则将其置于第一个try/catch中,并且它似乎释放了一半的内存,例如从此过程中使用的调试文件中释放(因为日志文件明显不在动作所以这是为了帮助我调试事后)我从昨晚的归档过程得到这个回应.

Attempt Archive
Take contents of current file with ReadFileString  (this is my custom stream reader method I wrote which you can see in the original article)
Taken contents of current file!
In TRY/CATCH - Out of Memory Exception - Try GC.Collect()
Memory used before collection: **498671500**
Memory used after collection: **250841460**
Try again with ReadFileString
How much content have we got? Content Length is **123595955**
We have content from the old log file
Run Code Online (Sandbox Code Playgroud)

所以GC.Collect似乎解决了读取文件问题. …

.net c# io garbage-collection readfile

5
推荐指数
2
解决办法
1034
查看次数

Server.ScriptTimeout = 0 不工作

我有一个 ASP Classic 脚本,它必须做很多事情(仅限管理员),包括运行一个需要 4 分钟才能执行的存储过程。

然而,即使我有

Server.ScriptTimeout = 0
Run Code Online (Sandbox Code Playgroud)

就在页面顶部,它似乎忽略了它 - 2003 和 2012 服务器。

我已经尝试尽可能多地为 proc 建立索引,但它是为了减少经常搜索的术语,所以我必须清除所有黑客、性垃圾邮件等。

我不明白的是为什么 Server.ScriptTimeout = 0 被忽略了。

实际的错误是这样的

Active Server Pages 错误“ASP 0113”

脚本超时

/admin/restricted/fix.asp

已超出脚本执行的最长时间。您可以通过为属性 Server.ScriptTimeout 指定新值或更改 IIS 管理工具中的值来更改此限制。

它从来没有这样做过,它应该覆盖 IIS 中 30 秒的默认设置。

我已确保 proc 的命令超时为 0,因此无限制,并且在从 proc 返回后出错。

有人有任何想法吗?

sql vbscript timeout ado asp-classic

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