Невозможно получить веб-страницу

Я новичок, чем "egg" в.NET и C# и хотел проверить, получаю ли я HTTP Response (GET) или нет. Поскольку я работаю за брандмауэром, я не уверен, кроется ли проблема в коде или безопасности.

Код, который скопирован с http://www.csharp-station.com/howto/httpwebfetch.aspx

Код:

using System;
using System.IO;
using System.Net;
using System.Text;


/// <summary>
/// Fetches a Web Page
/// </summary>
class WebFetch
{
    static void Main(string[] args)
    {
        // used to build entire input
        StringBuilder sb = new StringBuilder();

        // used on each read operation
        byte[] buf = new byte[8192];

        // prepare the web page we will be asking for
        HttpWebRequest request = (HttpWebRequest)
            WebRequest.Create("http://www.mayosoftware.com");

        // execute the request
        HttpWebResponse response = (HttpWebResponse)
            request.GetResponse();

        // we will read data via the response stream
        Stream resStream = response.GetResponseStream();

        string tempString = null;
        int count = 0;

        do
        {
            // fill the buffer with data
            count = resStream.Read(buf, 0, buf.Length);

            // make sure we read some data
            if (count != 0)
            {
                // translate from bytes to ASCII text
                tempString = Encoding.ASCII.GetString(buf, 0, count);

                // continue building the string
                sb.Append(tempString);
            }
        }
        while (count > 0); // any more data to read?

        // print out page source
        Console.WriteLine(sb.ToString());
    }
}

Ошибка:

Ошибка сервера в приложении '/'

Описание ошибки синтаксического анализатора. Произошла ошибка при разборе ресурса, необходимого для обслуживания этого запроса. Пожалуйста, просмотрите следующую конкретную информацию об ошибке разбора и измените исходный файл соответствующим образом.

Сообщение об ошибке синтаксического анализатора: "WebApplication6._Default" здесь не разрешено, поскольку оно не расширяет класс "System.Web.UI.Page".

Ошибка источника:

Строка 1:<% @ Page Title = "Домашняя страница" Language = "C#" MasterPageFile = "~ / Site.master" AutoEventWireup = "true" Строка 2:
CodeBehind = "Default.aspx.cs" Inherits = "WebApplication6._Default"%> Строка 3:

Любой намек, о том, как решить эту проблему. Очень нуб, так что очень оценят "шаги ребенка".

2 ответа

Я считаю, что ваша проблема в том, что вы используете неправильный тип проекта здесь. Вы видите сообщение об ошибке из ASP.NET. Код, который вы пытаетесь использовать, предназначен для консольного приложения.

Самое простое решение - запустить новый проект и выбрать правильный тип проекта (Консольное приложение).

Если вы действительно хотите, чтобы это был веб-сайт ASP.NET, вам нужно обязательно включить страницу, которая является производной от System.Web.UI.Page.

Ваш код выглядит как консольное приложение, приложение, которое компилируется в.EXE и может быть запущено из командной строки.

Тем не менее, ваше сообщение об ошибке в приложении ASP.NET; приложение, предназначенное для запуска в процессе веб-сервера.

Ваш вопрос был неясен относительно того, какой тип приложения вы на самом деле пытаетесь создать. Если это первое, то все, что вам нужно сделать, это скомпилировать приложение с помощью Visual Studio или csc.exe как исполняемый файл (что можно сделать, щелкнув правой кнопкой мыши по проекту, выбрав " Свойства" и установив тип вывода " Исполняемый"), и запустите его. Если у вас возникли проблемы, я бы посоветовал просто начать заново и создать новый проект в Visual Studio, на этот раз выбрав "Консольное приложение".

Если вы пытаетесь создать веб-страницу, у вас есть несколько проблем. Во-первых, в вашей странице директива (<%@ Page ... %> вещь), вам нужно будет установить Inherits приписать имя вашего класса. Например, WebFetch, Далее этот класс должен быть производным от System.Web.UI.Page:

/// <summary>
/// Fetches a Web Page
/// </summary>
public class WebFetch : System.Web.UI.Page
{
  //...
}

Если вы сделаете это, вы, вероятно, должны переопределить Render() метод и запись непосредственно в выходной поток:

/// <summary>
/// Fetches a Web Page
/// </summary>
public class WebFetch : System.Web.UI.Page
{
   protected override void Render(HtmlTextWriter writer)
   {
      // All your code here

      writer.Write(sb.ToString());
   }
}
Другие вопросы по тегам