Ich habe zwei getrennte Projekte, von denen einer einen Windows-Dienst mit einem anderen eine Referenz hat.Wie interagieren Windows Service und ASP.NET MVC-Projekt?
Ich möchte meinen Dienst eine Methode aus dem referenzierten Projekt nennen, etwa wie folgt:
protected override void OnStart(string[] args) {
MessageSystem msg_system = new MessageSystem();
IQueryable<MensagemGrupo> mensagens =
msg_system.GetScheduledMensagensGrupo();
foreach (var msg in mensagens) {
msg_system.ConfirmaEnvio(DateTime.Now, msg.id);
}
Der Code ich den Dienst werfen Aufruf bin:
public class MessageSystem {
private StorageModelDataContext db = new StorageModelDataContext();
public IQueryable<MensagemGrupo> GetScheduledMensagensGrupo() {
IQueryable<MensagemGrupo> mensagens = db.GetMensagensGrupoAgendadas();
return mensagens;
}
}
Ich erhalte ein System.NullReferenceException beginnend bei db.GetMensagensGrupoAgendadas(). Könnte es sein, weil db in einem Remote-Server ist?
Kann ich Methoden auf diese Weise vom Dienst anrufen?
PS: Der Dienst ist LocalSystem. Ich habe versucht, Netzwerkdienst, aber ich bekomme "Fehler 5: Zugriff verweigert" beim Starten des Dienstes.
Sie möchten, dass der Dienst den ASP.NET MVC-Code aufruft? –
Ja. Die Klasse MessageSystem ist ein Modell. – jvalente
Haben Sie die Modellverbindungszeichenfolge in die app.config Ihres Diensts (wie in web.config) eingefügt? – jmservera