Donnerstag, Februar 27, 2020

Wie zu verwenden WebClient.DownloadData(für einen lokalen DummyPage.aspx)

Bin ich nach einem tutorial auf diesen link http://www.codeproject.com/KB/aspnet/ASPNETService.aspx

Nun bin ich fest an diese codes

private const string DummyPageUrl = 
    "http://localhost/TestCacheTimeout/WebForm1.aspx";

private void HitPage()
{
    WebClient client = new WebClient();
    client.DownloadData(DummyPageUrl);
}

Meinem lokalen Anwendung-Adresse eine port-Nummer nach dem „localhost“, also wie bekomme ich den vollständigen Pfad (kann es sein, getan in der Application_Start-Methode)? Ich will, dass es ganz allgemein so, daß es in allen Fällen.

Vielen Dank!

UPDATE

Habe ich versucht, diese in der Application_Start-und es läuft gut, aber wieder Fehler sofort bei der Veröffentlichung zu IIS7

String path = HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority) + VirtualPathUtility.ToAbsolute("~/");
InformationsquelleAutor Leo | 2010-11-12

3 Kommentare

  1. 7

    Wenn Sie fordert, auf den selben server zurück, vielleicht benutzen die Request Objekt:

    var url = new Uri(Request.Url, "/TestCacheTimeout/WebForm1.aspx").AbsoluteUri;

    Andernfalls, speichern Sie die anderen – server, die details in einer config-Datei oder der Datenbank, und geben Sie den richtigen Wert.

    Aber eine bessere Frage wäre: warum würden Sie sprechen über das http zu sich selbst? Warum nicht einfach ein Aufruf einer Methode der Klasse? Ich persönlich würde mit einem externe geplanten Auftrag, dies zu tun.

    • Alles was ich versuche zu tun, ist, die Anweisungen von diesem Standort zu simulieren, ein Dienst, der kann laufen und mache ein paar Stoffe für mich im Laufe der Zeit.
    • wenn Sie die webapp läuft in einer virtuellen dir, man könnte/sollte die Verwendung var url = Request.Url.ToString().Substring(0, Request.Url.ToString().LastIndexOf('/')) + "/WebForm1.aspx";
    • Es gibt ein problem mit diesem, wenn Sie bereitstellen, um ein Umfeld, wo Ihr mit einem Anwendungsordner….
  2. 1

    Müssen Sie eine Antwort, die funktioniert, wenn Sie roll-out auf eine andere Umgebung, vielleicht hat ja einer virtual application Ordner.

    //r is Request.Url
    var url = new Uri(r, System.Web.VirtualPathUtility.ToAbsolute("~/Folder/folder/page.aspx")).AbsoluteUri;

    Diese wird in allen Fällen funktionieren und keine bösen überraschungen, wenn Sie bereitstellen.

  3. 0

    Ich vermute, Sie sind mit der ASP.NET Entwicklung, server, gebaut-in für Visual Studio, die hat eine Tendenz zu ändern port-Nummern sind standardmäßig. Wenn das der Fall ist, dann könnten Sie versuchen, einfach die Konfiguration der Entwicklungs-server immer den gleichen port verwenden, wie hier beschrieben. Dann fügen Sie einfach die port-Nummer für Ihre URL, etwa so:

    private const string DummyPageUrl = 
    "http://localhost:42001/TestCacheTimeout/WebForm1.aspx";

Kostenlose Online-Tests