我正在使用此小型网络应用程序(1页),由其他人在网页上按下按钮后执行特定任务而构建。Web应用程序到控制台应用程序?
现在需求发生了轻微的变化,我们需要自动执行此操作,无需用户交互即可每周运行一次。
这样做的最好方法是什么?最小化对代码所做的更改?
我正在考虑添加一个控制台应用程序,然后引用内部的web应用程序,但似乎并没有工作。
或者,也许将Web应用程序转换为控制台应用程序,如果这实际上是可能的?
有没有这样做的直接方式?
感谢
我正在使用此小型网络应用程序(1页),由其他人在网页上按下按钮后执行特定任务而构建。Web应用程序到控制台应用程序?
现在需求发生了轻微的变化,我们需要自动执行此操作,无需用户交互即可每周运行一次。
这样做的最好方法是什么?最小化对代码所做的更改?
我正在考虑添加一个控制台应用程序,然后引用内部的web应用程序,但似乎并没有工作。
或者,也许将Web应用程序转换为控制台应用程序,如果这实际上是可能的?
有没有这样做的直接方式?
感谢
这实际上取决于现有代码的结构。一种常见的方法是将业务逻辑与表示层分开。在VS中,通常通过创建一个类库项目并保持所有的业务逻辑来完成。然后,Web应用程序项目就会实例化业务逻辑类并运行其方法。
如果这样做,你只需要引用类库项目。另一方面,如果您拥有Web应用程序项目中的所有逻辑,可能没有办法做到这一点,因为您不应该手动实例化Page类(也可以这样做,但是,是笨拙的,不推荐)。 因此,在这种情况下,您应该创建一个类库项目,并在那里移动您需要在控制台应用程序中使用的所有逻辑。我会想象这将需要相当多的重构。
首先,确保“特殊任务”从Web应用程序,以便它驻留在自己的.NET项目进行细分。即使这个项目只包含一个类,你仍然在基于Web的UI和任务本身之间“分离关注”。
然后,您可以创建另一个“包装项目”,根据需要调用此新项目。控制台应用程序可以完成这项工作 - 您可以使用计划任务运行该工具 - 或者您可能更喜欢使用Windows服务。
是的,这就是我在想什么,并试图避免,但它看起来没有其他方式。 myabe将其转换为Web服务并从控制台应用程序调用它? – user441365
Web服务听起来像是一种矫枉过正。而且我认为你至少需要做相同数量的更改才能完成工作。最好试着用正确的方式与班级图书馆一起做。 –