Удаленный сервер возвратил ошибку 404 запрещено

  • Remove From My Forums
  • Question

  • Прошу помочь мне с этой ошибкой, раньше программа запускалась нормально но через какое-то время начало выдавать такую ошибку.

    подробная информация об использовании оперативной 
    (JIT) отладки вместо данного диалогового 
    окна содержится в конце этого сообщения.

    ************** Текст исключения **************
    System.Net.WebException: Удаленный сервер возвратил ошибку: (404) Не найден.
       в System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
       в System.Net.WebClient.DownloadString(Uri address)
       в System.Net.WebClient.DownloadString(String address)
       в WeAreDevs_API.ExploitAPI.IsUpdated()
       в WeAreDevs_API.ExploitAPI.LaunchExploit()
       в c.g(Object , EventArgs )
       в System.Windows.Forms.Control.OnClick(EventArgs e)
       в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       в System.Windows.Forms.Control.WndProc(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    ************** Загруженные сборки **************
    mscorlib
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3416.0 built by: NET472REL1LAST_B
        CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
    —————————————-
    Pain Exist
        Версия сборки: 1.0.0.0
        Версия Win32: 1.0.0.0
        CodeBase: file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%5BFilter%5D%20Pain%20Exist%20v2.9/%5BFilter%5D%20Pain%20Exist%20v2.9/Pain%20Exist%20V2.9%20by%20Filter.exe
    —————————————-
    System.Windows.Forms
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3324.0 built by: NET472REL1LAST_C
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    —————————————-
    System
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3416.0 built by: NET472REL1LAST_B
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
    —————————————-
    System.Drawing
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3056.0 built by: NET472REL1
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    —————————————-
    WeAreDevs_API
        Версия сборки: 1.0.0.0
        Версия Win32: 1.0.0.0
        CodeBase: file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%5BFilter%5D%20Pain%20Exist%20v2.9/%5BFilter%5D%20Pain%20Exist%20v2.9/WeAreDevs_API.DLL
    —————————————-
    System.Configuration
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3056.0 built by: NET472REL1
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    —————————————-
    System.Core
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3362.0 built by: NET472REL1LAST_C
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
    —————————————-
    System.Xml
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3056.0 built by: NET472REL1
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
    —————————————-
    FlatUI
        Версия сборки: 1.0.0.0
        Версия Win32: 1.0.0.0
        CodeBase: file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%5BFilter%5D%20Pain%20Exist%20v2.9/%5BFilter%5D%20Pain%20Exist%20v2.9/FlatUI.DLL
    —————————————-
    FastColoredTextBox
        Версия сборки: 2.16.23.0
        Версия Win32: 2.16.23.0
        CodeBase: file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%5BFilter%5D%20Pain%20Exist%20v2.9/%5BFilter%5D%20Pain%20Exist%20v2.9/FastColoredTextBox.DLL
    —————————————-
    System.resources
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3056.0 built by: NET472REL1
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.resources.dll
    —————————————-
    System.Windows.Forms.resources
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3056.0 built by: NET472REL1
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
    —————————————-
    mscorlib.resources
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3056.0 built by: NET472REL1
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll
    —————————————-

    ************** Оперативная отладка (JIT) **************
    Для подключения оперативной (JIT) отладки файл .config данного
    приложения или компьютера (machine.config) должен иметь
    значение jitDebugging, установленное в секции system.windows.forms.
    Приложение также должно быть скомпилировано с включенной
    отладкой.

    Например:

    <configuration>
        <system.windows.forms jitDebugging=»true» />
    </configuration>

    При включенной отладке JIT любое необрабатываемое исключение
    пересылается отладчику JIT, зарегистрированному на данном компьютере,
    вместо того чтобы обрабатываться данным диалоговым окном

I am using using a Proxy file to allow our system to use ajax to load in pages from an a different subdomain of our system. I successfully did this with my first attempt, but my second attempt is giving me an error, and I’m struggling to work out why, any help would be appreciated.

Firstly this is my Proxy.aspx.cs:

protected void Page_Load(object sender, EventArgs e)
{
    string proxyURL = HttpUtility.UrlDecode(Request.QueryString["u"]);

    if (proxyURL != string.Empty)
    {
        HttpWebRequest request = (HttpWebRequest) WebRequest.Create(proxyURL);
        request.Method = "POST";
        request.ContentLength = 0;
        HttpWebResponse response = (HttpWebResponse) request.GetResponse();

        if (response.StatusCode.ToString().ToLower() == "ok")
        {
            string contentType = response.ContentType;
            Stream content = response.GetResponseStream();
            if (content != null)
            {
                StreamReader contentReader = new StreamReader(content);
                Response.ContentType = contentType;
                Response.Write(contentReader.ReadToEnd());
            }
        }
    }
}

My HTML/Javascript is just this:

<script>
    $(document).ready(function () {
        $.ajax({
            type: "POST",
            url: "Proxy.aspx?u=<%=GetUrl()%>",
            success: function (data) {
                $('#iFrameHolder').html(data);
            }
        });
    });
</script>

<div id="iFrameHolder"></div>

Then I just use the GetUrl() function to build the url of whatever page I require from the project on the subdomain.

I got this working no problem at all with one url, but for the second attempt I received this error:

System.Net.WebException: The remote server returned an error: (404) Not Found.     
at System.Net.HttpWebRequest.GetResponse()     
at G2F.Collective.WebApplication.Shared.Proxy.Page_Load(Object sender, EventArgs e) 
in D:My DocumentsFireflyCollectiveDevSolutionWebSitesG2F.Collective.WebApplicationSharedProxy.aspx.cs:line 26     
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)     
at System.Web.UI.Control.LoadRecursive()     
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

That to me would suggest something was wrong with my url being built, but using Chrome’s web developer tools I can copy out the exact querystring being passed to the proxy, paste it into the browser address bar, and visit the page without any issue at all, which means there is no issue with the url being built. So I have no idea why this one returns a 404. If anyone can give me any suggestions, I’d greatly appreciate it.

I am using using a Proxy file to allow our system to use ajax to load in pages from an a different subdomain of our system. I successfully did this with my first attempt, but my second attempt is giving me an error, and I’m struggling to work out why, any help would be appreciated.

Firstly this is my Proxy.aspx.cs:

protected void Page_Load(object sender, EventArgs e)
{
    string proxyURL = HttpUtility.UrlDecode(Request.QueryString["u"]);

    if (proxyURL != string.Empty)
    {
        HttpWebRequest request = (HttpWebRequest) WebRequest.Create(proxyURL);
        request.Method = "POST";
        request.ContentLength = 0;
        HttpWebResponse response = (HttpWebResponse) request.GetResponse();

        if (response.StatusCode.ToString().ToLower() == "ok")
        {
            string contentType = response.ContentType;
            Stream content = response.GetResponseStream();
            if (content != null)
            {
                StreamReader contentReader = new StreamReader(content);
                Response.ContentType = contentType;
                Response.Write(contentReader.ReadToEnd());
            }
        }
    }
}

My HTML/Javascript is just this:

<script>
    $(document).ready(function () {
        $.ajax({
            type: "POST",
            url: "Proxy.aspx?u=<%=GetUrl()%>",
            success: function (data) {
                $('#iFrameHolder').html(data);
            }
        });
    });
</script>

<div id="iFrameHolder"></div>

Then I just use the GetUrl() function to build the url of whatever page I require from the project on the subdomain.

I got this working no problem at all with one url, but for the second attempt I received this error:

System.Net.WebException: The remote server returned an error: (404) Not Found.     
at System.Net.HttpWebRequest.GetResponse()     
at G2F.Collective.WebApplication.Shared.Proxy.Page_Load(Object sender, EventArgs e) 
in D:My DocumentsFireflyCollectiveDevSolutionWebSitesG2F.Collective.WebApplicationSharedProxy.aspx.cs:line 26     
at System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e)     
at System.Web.UI.Control.LoadRecursive()     
at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

That to me would suggest something was wrong with my url being built, but using Chrome’s web developer tools I can copy out the exact querystring being passed to the proxy, paste it into the browser address bar, and visit the page without any issue at all, which means there is no issue with the url being built. So I have no idea why this one returns a 404. If anyone can give me any suggestions, I’d greatly appreciate it.

  • Remove From My Forums
  • Вопрос

  • В связи с чем, при вызове метода HttpWebRequest.GetResponse(), появляется исключение WebException с сообщением: «Удалённый сервер возвратил ошибку (404) не найден»?

Ответы

  • Т.е. ресурс к которому вы обращаетесь отсутствует, его попросту нет. Если, скажем это файл или страница, его нет на диске сервера.


    Сделаем содержимое сообщества лучше, вместе!

    • Помечено в качестве ответа
      LXGDARKEditor
      27 июня 2014 г. 19:10

Все ответы

  • Т.е. ресурс к которому вы обращаетесь отсутствует, его попросту нет. Если, скажем это файл или страница, его нет на диске сервера.


    Сделаем содержимое сообщества лучше, вместе!

    • Помечено в качестве ответа
      LXGDARKEditor
      27 июня 2014 г. 19:10
  • А с правами пользователя относительно доступа к этому ресурсу (т.е. если у пользователя не хватает прав для доступа к ресурсу) появление этой ошибки не может быть связано?

  • Нет, в случае с привилегиями выдаётся другая ошибка. Ошибка с кодом 401.


    Сделаем содержимое сообщества лучше, вместе!

  • Хорошо, спасибо. Вопрос закрыт.

  • Remove From My Forums
  • Question

  • Прошу помочь мне с этой ошибкой, раньше программа запускалась нормально но через какое-то время начало выдавать такую ошибку.

    подробная информация об использовании оперативной 
    (JIT) отладки вместо данного диалогового 
    окна содержится в конце этого сообщения.

    ************** Текст исключения **************
    System.Net.WebException: Удаленный сервер возвратил ошибку: (404) Не найден.
       в System.Net.WebClient.DownloadDataInternal(Uri address, WebRequest& request)
       в System.Net.WebClient.DownloadString(Uri address)
       в System.Net.WebClient.DownloadString(String address)
       в WeAreDevs_API.ExploitAPI.IsUpdated()
       в WeAreDevs_API.ExploitAPI.LaunchExploit()
       в c.g(Object , EventArgs )
       в System.Windows.Forms.Control.OnClick(EventArgs e)
       в System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
       в System.Windows.Forms.Control.WndProc(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
       в System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
       в System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    ************** Загруженные сборки **************
    mscorlib
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3416.0 built by: NET472REL1LAST_B
        CodeBase: file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
    —————————————-
    Pain Exist
        Версия сборки: 1.0.0.0
        Версия Win32: 1.0.0.0
        CodeBase: file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%5BFilter%5D%20Pain%20Exist%20v2.9/%5BFilter%5D%20Pain%20Exist%20v2.9/Pain%20Exist%20V2.9%20by%20Filter.exe
    —————————————-
    System.Windows.Forms
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3324.0 built by: NET472REL1LAST_C
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    —————————————-
    System
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3416.0 built by: NET472REL1LAST_B
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
    —————————————-
    System.Drawing
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3056.0 built by: NET472REL1
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    —————————————-
    WeAreDevs_API
        Версия сборки: 1.0.0.0
        Версия Win32: 1.0.0.0
        CodeBase: file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%5BFilter%5D%20Pain%20Exist%20v2.9/%5BFilter%5D%20Pain%20Exist%20v2.9/WeAreDevs_API.DLL
    —————————————-
    System.Configuration
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3056.0 built by: NET472REL1
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    —————————————-
    System.Core
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3362.0 built by: NET472REL1LAST_C
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
    —————————————-
    System.Xml
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3056.0 built by: NET472REL1
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
    —————————————-
    FlatUI
        Версия сборки: 1.0.0.0
        Версия Win32: 1.0.0.0
        CodeBase: file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%5BFilter%5D%20Pain%20Exist%20v2.9/%5BFilter%5D%20Pain%20Exist%20v2.9/FlatUI.DLL
    —————————————-
    FastColoredTextBox
        Версия сборки: 2.16.23.0
        Версия Win32: 2.16.23.0
        CodeBase: file:///C:/Users/%D0%96%D0%B5%D0%BD%D1%8F/Desktop/%D0%9D%D0%BE%D0%B2%D0%B0%D1%8F%20%D0%BF%D0%B0%D0%BF%D0%BA%D0%B0%20(3)/%5BFilter%5D%20Pain%20Exist%20v2.9/%5BFilter%5D%20Pain%20Exist%20v2.9/FastColoredTextBox.DLL
    —————————————-
    System.resources
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3056.0 built by: NET472REL1
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.resources.dll
    —————————————-
    System.Windows.Forms.resources
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3056.0 built by: NET472REL1
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/System.Windows.Forms.resources.dll
    —————————————-
    mscorlib.resources
        Версия сборки: 4.0.0.0
        Версия Win32: 4.7.3056.0 built by: NET472REL1
        CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_ru_b77a5c561934e089/mscorlib.resources.dll
    —————————————-

    ************** Оперативная отладка (JIT) **************
    Для подключения оперативной (JIT) отладки файл .config данного
    приложения или компьютера (machine.config) должен иметь
    значение jitDebugging, установленное в секции system.windows.forms.
    Приложение также должно быть скомпилировано с включенной
    отладкой.

    Например:

    <configuration>
        <system.windows.forms jitDebugging=»true» />
    </configuration>

    При включенной отладке JIT любое необрабатываемое исключение
    пересылается отладчику JIT, зарегистрированному на данном компьютере,
    вместо того чтобы обрабатываться данным диалоговым окном

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
// using System.IO; using System.Xml.Linq; using System.Net; using System.Web;     namespace rsh {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();         }             private void Form1_Load(object sender, EventArgs e)         {             button1.PerformClick();         }           private void button1_Click(object sender, EventArgs e)         {             string[] st = richTextBox1.Lines;             string langTo = "ru"; // Я зык на который нужно перевести               Test1(st, langTo);         }             public void Test1(string[] args, string langTo)         // static void Test1(string[] args, string langTo)         {             try             {                 // инфо сообщение                 // string languagesForTranslate = "албанский sq,nанглийский en,nарабский ar,nармянский hy,nазербайджанский az,nафрикаанс af,nбаскский eu,nбелорусский be,nболгарский bg,nбоснийский bs,nваллийский cy,nвьетнамский vi,nвенгерский hu,nгаитянский(креольский) ht,nгалисийский gl,nголландский nl,nгреческий el,nгрузинский  ka,nдатский da,nиврит he,nиндонезийский id,nирландский  ga,nитальянский it,nиспанский es,nказахский  kk,nкаталанский ca,nкиргизский  ky,nкитайский zh,nкорейский ko,nлатынь  la,nлатышский   lv,nлитовский   lt,nмалагасийский   mg,nмалайский   ms,nмальтийский mt,nмакедонский mk,nмонгольский mn,nнемецкий de,nнорвежский  no,nперсидский  fa,nпольский  pl,nпортугальский pt,nрумынский ro,nрусский ru,nсербский sr,nсловацкий sk,nсловенский  sl,nсуахили sw,nтаджикский  tg,nтайский th,nтагальский  tl,nтатарский   tt,nтурецкий tr,nузбекский   uz,nукраинский  uk,nфинский fi,nфранцузский fr,nхорватский  hr,nчешский cs,nшведский sv,nэстонский   et,nяпонский ja";                 // Console.WriteLine("Перечень языков переводаnn" + languagesForTranslate + "n");                    // string text = File.ReadAllText(args[0]);                   string text = args[0];                   TextTranslationAPI api = new TextTranslationAPI();                   TranslateCommand languageOfText = new TranslateCommand                 {                     Type = RequestType.Detect,                     Parameters = new Dictionary<string, string> { { "text", text } },                     ResultSelector = x => x.Attribute("lang").Value                 };                   string languageFrom = api.GetResult(languageOfText);                   //Console.WriteLine("Язык текста для перевода " + languageFrom + "n");                 //Console.WriteLine("Выберите из перечня языков, язык на который будет переводится текст в вашем файле:n");                 //Console.WriteLine("Пример: -enn");                     // string languageTo = Console.ReadLine(); // ИСХ                 string languageTo = langTo;                   string translateLanguage = languageFrom + languageTo;                 TranslateCommand translate = new TranslateCommand                 {                     Type = RequestType.Translate,                     Parameters = new Dictionary<string, string> { { "lang", translateLanguage }, { "text", text } },                     ResultSelector = x => x.Element("text").Value                 };                 string result = api.GetResult(translate);                   richTextBox2.Text = result;                   string adresOutPutFile = string.Format(@"C:Temp{0}.txt", translateLanguage);                 File.WriteAllText(adresOutPutFile, result);             }             catch (Exception ex)             {                 richTextBox3.Text += ex.ToString();                 richTextBox3.Text += "ОШИБКА, НЕВЕРНО ВВЕЛИ ЯЗЫК НА КОТОРЫЙ БУДЕТ ПЕРЕВОДИТСЯ ТЕКСТ В ВАШЕМ ФАЙЛЕ: " + ex.Message;                 // Console.WriteLine("ОШИБКА, НЕВЕРНО ВВЕЛИ ЯЗЫК НА КОТОРЫЙ БУДЕТ ПЕРЕВОДИТСЯ ТЕКСТ В ВАШЕМ ФАЙЛЕ: " + ex.Message);             }           }             enum RequestType         {             Translate,             Detect         }           struct TranslateCommand         {             public RequestType Type;             public Dictionary<string, string> Parameters;             public Func<XElement, string> ResultSelector;         }           class TextTranslationAPI         {               private readonly string Url;             private readonly string Key;             public TextTranslationAPI(string url, string key)             {                 Url = url;                 Key = key;             }                         public TextTranslationAPI() : this(@"https://translate.yandex.net/api/v1.5/tr/translate/", "trnsl.1.1.20180930T111308Z.5e8e8b704ad292c9.f7780e2f1ef62bd0d0301cae74e677ef8a62be7a")             { }               private string GetAction(RequestType type)             {                 switch (type)                 {                     case RequestType.Detect:                         return "detect";                     case RequestType.Translate:                         return "translate";                     default:                         throw new ArgumentOutOfRangeException();                 }             }               public string GetResult(TranslateCommand command)             {                   string strUrl = Url + GetAction(command.Type) + "?key=" + Key;                 foreach (var parameter in command.Parameters)                     strUrl += "&" + parameter.Key + "=" + HttpUtility.UrlEncode(parameter.Value);                                   WebClient webClitnt = new WebClient();                 webClitnt.Encoding = Encoding.UTF8;                   string stringXml = webClitnt.DownloadString(strUrl); // ОШИБКА                 XDocument document = XDocument.Parse(stringXml);                 string textTranslate = command.ResultSelector(document.Root);                   return textTranslate;             }           }               } }

Ошибка 404, либо Error 404 Not Found — ошибка, которая появляется, если браузеру не удалось обнаружить на сервере указанный URL.

Страница 404.

Сообщение об ошибке 404

Error 404 Not Found отображается по-разному: «HTTP 404 не найден», «Ошибка 404 Not Found», «404 Страница не найдена». Смысл надписи всегда остаётся тем же: страница отсутствует либо просто не работает. Not Found в переводе означает «не найдено».

Ошибка 404 — классический код ответа по протоколу HTTP. Он свидетельствует, что связь с сервером установлена, но информации по заданному запросу нет.

Однако если просто ввести в поисковую строку произвольный набор символов, то браузер не покажет ошибку 404 Not Found — появится сообщение, что установить соединение с конкретным сервером невозможно.

Разберёмся в техническом формировании ответа Error 404 Not Found.

Техническая сторона вопроса. При связи по HTTP браузер запрашивает указанный URL и ждёт цифрового ответа. То есть любой запрос пользователя направляется на сервер размещения искомого сайта. Когда браузеру удаётся связаться с сервером, он получает кодированный ответ. Если запрос корректный и страница найдена, отправляется ответ с кодом 200 OK, что соответствует благополучной загрузке. При отсутствии страницы отправляется ответ об ошибке.

Что значит код «404». В ответе 404 первая четвёрка указывает на то, что запрос был чрезмерно длительным или в самом адресе была ошибка. Ноль предполагает синтаксическую неточность. Завершающая цифра кода отображает конкретную причину ошибки — «4» означает отсутствие данной ссылки.

Какие ещё ошибки бывают. Ошибку 404 не нужно путать с другими ответами, которые указывают на невозможность связи с сервером. Например, ошибка 403 сообщает, что доступ к URL ограничен, а ответ «Сервер не найден» свидетельствует, что браузер не смог обнаружить место размещения сайта.

Страница 404 от Google.

Google на 404 странице сообщает о возможных причинах ошибки

Причины ошибки

Причины, по которым HTTP возвращает ответ 404 Not Found:

  • Неверный адрес. К примеру, при ручном наборе пользователь допустил опечатку в URL либо ссылка ведёт на несуществующую страницу.
  • Битая ссылка. Это нерабочий URL, который никуда не ведёт. Данный вариант иногда возникает при внутренней перелинковке. К примеру, раньше страница существовала, а потом её удалили и забыли убрать ссылку.
  • Удалённая страница. Когда пользователь попытается перейти на удалённую с сервера страницу, он также увидит ошибку 404. Ссылка для перехода может сохраниться в браузерных закладках или на сторонних ресурсах.
  • Неправильный редирект на страницу с изменённым адресом. Допустим, в процессе редизайна URL изменили, но оставили без внимания связанные ссылки.
  • Неполадки на сервере. Это самый редкий вариант.

В большинстве ситуаций ошибка 404 отображается, когда не удаётся обнаружить нужную страницу на доступном сервере.

Несуществующая страница на сайте.

Причины отсутствия страницы на сайте бывают разными

Возможные последствия для сайта

Нужно ли считать 404 ошибку опасной для сайтов? Кажется, что нет ничего плохого в том, что пользователь не смог открыть одну веб-страницу. Однако если такая ситуация будет повторяться регулярно, это чревато оттоком аудитории. Одни пользователи решат, что сайт вовсе не существует. Другие подумают, что лучше не заходить на сайт, который работает с ошибками. Третьи будут игнорировать ресурс, на котором не смогли получить обещанную информацию.

Поисковые системы относятся к Not Found более лояльно. Например, Google отмечает, что 404 страницы не влияют на рейтинг. Но если при индексации роботы будут находить все больше ошибочных страниц, вряд ли это приведёт к более высокому ранжированию.

Если вы хотите улучшить взаимодействие с посетителями, важно найти и исправить все ошибки 404 на сайте.

Как выявить ошибку

На небольшом ресурсе легко проверить работоспособность ссылок вручную. Но если на сайте сотни и тысячи страниц, без дополнительного софта не обойтись. Есть немало сервисов и программ, позволяющих находить битые ссылки. Рассмотрим некоторые из них.

Search Console Google

Консоль поиска Google позволяет находить страницы с ошибкой 404 за несколько кликов:

  1. Войдите в учётную запись Google и перейдите в Search Console.
  2. Откройте раздел «Ошибки сканирования» → «Диагностика».
  3. Кликните на «Not Found».

Чтобы получить список страниц с ошибками, подтвердите права на ресурс — добавьте проверочную запись TXT в записи DNS регистратора домена. Такая запись не повлияет на работу сайта. Подробнее о процедуре подтверждения, читайте в справке Google.

Интерфейс Search Console Google.

Для использования Search Console Google нужно подтвердить свои права на сайт

Яндекс Вебмастер

Сервис для вебмастеров от Яндекса поможет быстро найти все ошибки 404:

  1. Откройте Вебмастер после авторизации в Яндекс-аккаунте.
  2. Выберите «Индексирование» → «Доступные для поиска страницы» → «Исключённые страницы».
  3. В выданном списке выберите фильтр «Ошибка HTTP: 404».

Чтобы использовать Яндекс.Вебмастер, также нужно подтвердить право владения сайтом — добавить метатег в HTML-код главной страницы.

Главная страница Яндекс.Вебмастер.

Для входа в Вебмастер авторизуйтесь в Яндексе

Screaming Frog

Для начала загрузите и установите программу на компьютер. После запуска добавьте URL проверяемого сайта и начните поиск проблем. Неработающие ссылки можно искать даже в бесплатной версии.

Сервис Screaming Frog.

Инструмент SEO-паук в Screaming Frog помогает найти технические неисправности сайта

SiteAnalyzer

Эта бесплатная десктопная программа позволяет обнаружить технические погрешности на сайте. SiteAnalyzer быстро отыщет нерабочие и несуществующие ссылки.

Страница загрузки SiteAnalyzer.

SiteAnalyzer бесплатно найдёт неработающие URL

Как исправить ошибку Not Found

Выбор конкретного решения зависит от причины ошибки:

  1. Ссылка ведёт в никуда из-за неверного URL. Для решения проблемы замените ошибочную ссылку на правильный адрес, чтобы сервер отдавал код 200 OK.
  2. Битая ссылка. Подобная ситуация не редкость при внутренней перелинковке страниц. К примеру, ссылка есть, а саму страницу давно удалили. Решений два: удалить ссылку или заменить её на другую.

Удалять и менять ссылки вручную удобно только на небольших сайтах. Исправление ошибок на крупных порталах лучше автоматизировать. Например, с помощью специальных плагинов для внутренней перелинковки (Terms Description, Dagon Design Sitemap Generator) и для автоматического формирования адресов страниц (Cyr-To-Lat).

Чтобы ошибки 404 появлялись как можно реже, достаточно соблюдать простые рекомендации:

  • Не присваивайте сложные адреса основным разделам сайта. Это снизит число ошибок, связанных с опечатками в URL.
  • Не меняйте адреса страниц слишком часто. Это неудобно для пользователей и вводит в заблуждение поисковых роботов.
  • Размещайте сайт на надёжном сервере. Это предотвратит ошибки, возникающие из-за неработоспособности сервера.

Мы разобрались, как найти и исправить ошибки Not Found внутри сайта. Но неработающая ссылка может быть расположена и на стороннем ресурсе. Допустим, когда-то на другом сайте разместили рекламную публикацию со ссылкой на определённую страницу. Спустя какое-то время страницу удалили. В этом случае появится ошибка 404. Устранить её можно, связавшись с администрацией ссылающегося сайта. Если же удалить/исправить ссылку нельзя, постарайтесь использовать ошибку с выгодой.

Как сделать страницу 404 полезной

Грамотно оформленная страница с ошибкой Error 404 Not Found — действенный инструмент конвертации посетителей. Ограничений по использованию страницы с ошибкой 404 нет. При этом практически все CMS позволяют настраивать дизайн этой страницы.

Что публиковать на странице 404:

  • меню с кликабельными ссылками;
  • ссылку на главную страницу;
  • анонс последних публикаций;
  • контакты для обратной связи.

При оформлении страницы-ошибки желательно опираться на рекомендации поисковиков:

  • Яндекс настоятельно рекомендует, чтобы страница контрастировала с основным содержанием сайта — иные цвета, другие графические приёмы либо их отсутствие. Необходимо чётко и понятно объяснить пользователю, что запрошенной страницы не существует и предложить другое решение.
  • Google советует придерживаться единого стиля оформления. Но также рекомендует понятно рассказать об ошибке и предложить полезные материалы.

Главное — по возможности отказаться от стандартной страницы 404. Подумайте, как привлечь внимание пользователя. Расскажите ему об отсутствии искомой страницы и предложите взамен что-то полезное или интересное.

Примеры оформления страниц 404

Designzillas

Мультяшная страница креативной студии привлекает внимание и её хочется досмотреть до конца. Если прокрутить страницу, можно увидеть, как из яйца вылупится дракон. При этом на странице есть ссылки на все основные разделы сайта.

404 страница на сайте Designzillas

Меню на сайте Designzillas есть и на 404 странице

Domenart Studio

Веб-студия «Домен АРТ» использует красочную страницу 404, оформленную в единой стилистике ресурса. Заблудившимся пользователям предлагают попробовать ещё раз ввести адрес или перейти в нужный раздел.

Страница 404 Domenart Studio.

Контакты, поиск, меню — и всё это на 404 странице Domenart Studio

E-co

«Эко Пауэр», дистрибьютор производителя источников питания, демонстрирует короткое замыкание как символ ошибки. Посетителям предлагают перейти на главную.

Ошибка 404 «Эко Пауэр»

Ошибка 404 «Эко Пауэр» выглядит как страница входа

Дом со всем

Компания «Дом со всем», занимающаяся бурением скважин, разместила на странице 404 свои контакты и перечень услуг. Со страницы можно перейти в любой раздел сайта или заказать обратный звонок. С таким наполнением посетителю не нужно искать дополнительную информацию где-то ещё.

Страница 404 «Дом со всем».

Компания «Дом со всем» предлагает заказать обратный звонок

Kualo

Страница 404 на веб-хостинге Kualo может заставить пользователя забыть, зачем он сюда пришёл. Увлекательная игра притягивает внимание. В конце игры посетителю предлагают посмотреть сайт хостинга.

Cтраница 404 Kualo

На странице Kualo можно просто поиграть и заработать скидки

Рано или поздно с ошибкой 404 сталкивается большинство сайтов. При регулярной проверке можно своевременно исправить неработающие ссылки, чтобы в ответ пользователи получали код 200 OK. Но для крупного ресурса лучше настроить оригинальную страницу, которая будет отображаться при появлении ошибки Not Found и подскажет посетителям, что делать дальше.

Главные мысли

Ошибка 404 это

RRS feed

  • Remove From My Forums
  • Вопрос

  • В связи с чем, при вызове метода HttpWebRequest.GetResponse(), появляется исключение WebException с сообщением: «Удалённый сервер возвратил ошибку (404) не найден»?

Ответы

  • Т.е. ресурс к которому вы обращаетесь отсутствует, его попросту нет. Если, скажем это файл или страница, его нет на диске сервера.


    Сделаем содержимое сообщества лучше, вместе!

    • Помечено в качестве ответа
      LXGDARKEditor
      27 июня 2014 г. 19:10

Все ответы

  • Т.е. ресурс к которому вы обращаетесь отсутствует, его попросту нет. Если, скажем это файл или страница, его нет на диске сервера.


    Сделаем содержимое сообщества лучше, вместе!

    • Помечено в качестве ответа
      LXGDARKEditor
      27 июня 2014 г. 19:10

  • А с правами пользователя относительно доступа к этому ресурсу (т.е. если у пользователя не хватает прав для доступа к ресурсу) появление этой ошибки не может быть связано?

  • Нет, в случае с привилегиями выдаётся другая ошибка. Ошибка с кодом 401.


    Сделаем содержимое сообщества лучше, вместе!

  • Хорошо, спасибо. Вопрос закрыт.

I have set up project to be run on IIS for some time ago and when I did press F5 it did connect no problem. But recently this stopped working and I did get this error when I press F5 / press Debug->Start debugging:

Unable to start debugging on the web server. The remote server
returned an error: (404) Not Found.

enter image description here

Here is my settings:

enter image description here

I am not sure what happened, probably some VS updates or Windows updates, but I’ve tried to google everywhere and nothing had worked. Attach to process works fine as before, but this simpler way stopped doing the trick.

Update:

Have tried Process Monitor to figure out what is going wrong and it looks like w3wp tries to access path MyProjectFolderdebugattach.aspx and the result is «NAME NOT FOUND». Don’t know if this is the root of the problem though.

asked Oct 31, 2017 at 7:59

Ilya Chernomordik's user avatar

Ilya ChernomordikIlya Chernomordik

27.2k26 gold badges119 silver badges203 bronze badges

11

It appears that one of my colleagues has edited the web.config and added request filtering where he has removed the «DEBUG» verb. This disallowed debugging on F5.
After adding it (or removing request filtering) everything works fine.

P.S. A lot of other possible problems with similar error is described here

answered Nov 3, 2017 at 13:48

Ilya Chernomordik's user avatar

Ilya ChernomordikIlya Chernomordik

27.2k26 gold badges119 silver badges203 bronze badges

4

Old post but I recently had this issue and making sure that the following settings were enabled in ‘Programs and Features’ (Windows 10) fixed the issue for me:

Programs and Features to enable

answered Jan 24, 2020 at 23:02

GeorgeB's user avatar

GeorgeBGeorgeB

8081 gold badge8 silver badges25 bronze badges

0

In my case (Windows 10 & Visual Studio 2017) I had to install ASP.NET 3.5 and ASP.NET 4.7 under the Internet Information Services.

Click here to see the solution

answered Dec 30, 2018 at 21:22

Husam Ebish's user avatar

Husam EbishHusam Ebish

4,5272 gold badges19 silver badges37 bronze badges

This happened to me because I was using the Rewrite module to redirect to https. I was running https://localhost/WebSiteName, but had put my machine name in the https binding in IIS Mgr, Default web Site, Bindings. When I removed the machine name it worked.

answered Apr 16, 2019 at 14:55

Michael Ludlum's user avatar

1

Recently I have faced the same issue in VS2013 Professional, instantly I get error ‘Unable to start debugging on web server». I observed that whenever my current page is MVC view (.cshtml) file and I start debugging , the error window prompts every time. As switch the current document in my project to controller (.cs) file, and starts debugging, it works properly.
So my workaround is to debug my code I have to be on (.cs) file not on (.cshtml / web.config) file. Hope that helps!

answered Oct 3, 2019 at 18:08

Garg V's user avatar

Another reason for this problem is that you don’t run visul studio Run as administrator.

answered May 3, 2019 at 7:02

mahmood kabi's user avatar

My issue was related 405 as attached below
enter image description here

My issue got resolved after making my projects properties(Web and Build) as given below
enter image description here

enter image description here

answered Feb 13, 2020 at 9:02

Rinoy Ashokan's user avatar

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
//
using System.IO;
using System.Xml.Linq;
using System.Net;
using System.Web;
 
 
namespace rsh
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
 
        private void Form1_Load(object sender, EventArgs e)
        {
            button1.PerformClick();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string[] st = richTextBox1.Lines; 
            string langTo = "ru"; // Я зык на который нужно перевести
 
            Test1(st, langTo);
        }
 
 
        public void Test1(string[] args, string langTo)
        // static void Test1(string[] args, string langTo)
        {
            try
            {
                // инфо сообщение
                // string languagesForTranslate = "албанский sq,nанглийский en,nарабский ar,nармянский hy,nазербайджанский az,nафрикаанс af,nбаскский eu,nбелорусский be,nболгарский bg,nбоснийский bs,nваллийский cy,nвьетнамский vi,nвенгерский hu,nгаитянский(креольский) ht,nгалисийский gl,nголландский nl,nгреческий el,nгрузинский  ka,nдатский da,nиврит he,nиндонезийский id,nирландский  ga,nитальянский it,nиспанский es,nказахский  kk,nкаталанский ca,nкиргизский  ky,nкитайский zh,nкорейский ko,nлатынь  la,nлатышский   lv,nлитовский   lt,nмалагасийский   mg,nмалайский   ms,nмальтийский mt,nмакедонский mk,nмонгольский mn,nнемецкий de,nнорвежский  no,nперсидский  fa,nпольский  pl,nпортугальский pt,nрумынский ro,nрусский ru,nсербский sr,nсловацкий sk,nсловенский  sl,nсуахили sw,nтаджикский  tg,nтайский th,nтагальский  tl,nтатарский   tt,nтурецкий tr,nузбекский   uz,nукраинский  uk,nфинский fi,nфранцузский fr,nхорватский  hr,nчешский cs,nшведский sv,nэстонский   et,nяпонский ja";
                // Console.WriteLine("Перечень языков переводаnn" + languagesForTranslate + "n"); 
 
                // string text = File.ReadAllText(args[0]);
 
                string text = args[0];
 
                TextTranslationAPI api = new TextTranslationAPI();
 
                TranslateCommand languageOfText = new TranslateCommand
                {
                    Type = RequestType.Detect,
                    Parameters = new Dictionary<string, string> { { "text", text } },
                    ResultSelector = x => x.Attribute("lang").Value
                };
 
                string languageFrom = api.GetResult(languageOfText);
 
                //Console.WriteLine("Язык текста для перевода " + languageFrom + "n");
                //Console.WriteLine("Выберите из перечня языков, язык на который будет переводится текст в вашем файле:n");
                //Console.WriteLine("Пример: -enn");
 
 
                // string languageTo = Console.ReadLine(); // ИСХ
                string languageTo = langTo;
 
                string translateLanguage = languageFrom + languageTo;
                TranslateCommand translate = new TranslateCommand
                {
                    Type = RequestType.Translate,
                    Parameters = new Dictionary<string, string> { { "lang", translateLanguage }, { "text", text } },
                    ResultSelector = x => x.Element("text").Value
                };
                string result = api.GetResult(translate);
 
                richTextBox2.Text = result;
 
                string adresOutPutFile = string.Format(@"C:Temp{0}.txt", translateLanguage);
                File.WriteAllText(adresOutPutFile, result);
            }
            catch (Exception ex)
            {
                richTextBox3.Text += ex.ToString();
                richTextBox3.Text += "ОШИБКА, НЕВЕРНО ВВЕЛИ ЯЗЫК НА КОТОРЫЙ БУДЕТ ПЕРЕВОДИТСЯ ТЕКСТ В ВАШЕМ ФАЙЛЕ: " + ex.Message;
                // Console.WriteLine("ОШИБКА, НЕВЕРНО ВВЕЛИ ЯЗЫК НА КОТОРЫЙ БУДЕТ ПЕРЕВОДИТСЯ ТЕКСТ В ВАШЕМ ФАЙЛЕ: " + ex.Message);
            }
 
        }
 
 
        enum RequestType
        {
            Translate,
            Detect
        }
 
        struct TranslateCommand
        {
            public RequestType Type;
            public Dictionary<string, string> Parameters;
            public Func<XElement, string> ResultSelector;
        }
 
        class TextTranslationAPI
        {
 
            private readonly string Url;
            private readonly string Key;
            public TextTranslationAPI(string url, string key)
            {
                Url = url;
                Key = key;
            }
            
            public TextTranslationAPI() : this(@"https://translate.yandex.net/api/v1.5/tr/translate/", "trnsl.1.1.20180930T111308Z.5e8e8b704ad292c9.f7780e2f1ef62bd0d0301cae74e677ef8a62be7a")
            { }
 
            private string GetAction(RequestType type)
            {
                switch (type)
                {
                    case RequestType.Detect:
                        return "detect";
                    case RequestType.Translate:
                        return "translate";
                    default:
                        throw new ArgumentOutOfRangeException();
                }
            }
 
            public string GetResult(TranslateCommand command)
            {
 
                string strUrl = Url + GetAction(command.Type) + "?key=" + Key;
                foreach (var parameter in command.Parameters)
                    strUrl += "&" + parameter.Key + "=" + HttpUtility.UrlEncode(parameter.Value);
 
                
                WebClient webClitnt = new WebClient();
                webClitnt.Encoding = Encoding.UTF8;
 
                string stringXml = webClitnt.DownloadString(strUrl); // ОШИБКА
                XDocument document = XDocument.Parse(stringXml);
                string textTranslate = command.ResultSelector(document.Root);
 
                return textTranslate;
            }
 
        }
 
        
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
// using System.IO; using System.Xml.Linq; using System.Net; using System.Web;     namespace rsh {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();         }             private void Form1_Load(object sender, EventArgs e)         {             button1.PerformClick();         }           private void button1_Click(object sender, EventArgs e)         {             string[] st = richTextBox1.Lines;             string langTo = "ru"; // Я зык на который нужно перевести               Test1(st, langTo);         }             public void Test1(string[] args, string langTo)         // static void Test1(string[] args, string langTo)         {             try             {                 // инфо сообщение                 // string languagesForTranslate = "албанский sq,nанглийский en,nарабский ar,nармянский hy,nазербайджанский az,nафрикаанс af,nбаскский eu,nбелорусский be,nболгарский bg,nбоснийский bs,nваллийский cy,nвьетнамский vi,nвенгерский hu,nгаитянский(креольский) ht,nгалисийский gl,nголландский nl,nгреческий el,nгрузинский  ka,nдатский da,nиврит he,nиндонезийский id,nирландский  ga,nитальянский it,nиспанский es,nказахский  kk,nкаталанский ca,nкиргизский  ky,nкитайский zh,nкорейский ko,nлатынь  la,nлатышский   lv,nлитовский   lt,nмалагасийский   mg,nмалайский   ms,nмальтийский mt,nмакедонский mk,nмонгольский mn,nнемецкий de,nнорвежский  no,nперсидский  fa,nпольский  pl,nпортугальский pt,nрумынский ro,nрусский ru,nсербский sr,nсловацкий sk,nсловенский  sl,nсуахили sw,nтаджикский  tg,nтайский th,nтагальский  tl,nтатарский   tt,nтурецкий tr,nузбекский   uz,nукраинский  uk,nфинский fi,nфранцузский fr,nхорватский  hr,nчешский cs,nшведский sv,nэстонский   et,nяпонский ja";                 // Console.WriteLine("Перечень языков переводаnn" + languagesForTranslate + "n");                    // string text = File.ReadAllText(args[0]);                   string text = args[0];                   TextTranslationAPI api = new TextTranslationAPI();                   TranslateCommand languageOfText = new TranslateCommand                 {                     Type = RequestType.Detect,                     Parameters = new Dictionary<string, string> { { "text", text } },                     ResultSelector = x => x.Attribute("lang").Value                 };                   string languageFrom = api.GetResult(languageOfText);                   //Console.WriteLine("Язык текста для перевода " + languageFrom + "n");                 //Console.WriteLine("Выберите из перечня языков, язык на который будет переводится текст в вашем файле:n");                 //Console.WriteLine("Пример: -enn");                     // string languageTo = Console.ReadLine(); // ИСХ                 string languageTo = langTo;                   string translateLanguage = languageFrom + languageTo;                 TranslateCommand translate = new TranslateCommand                 {                     Type = RequestType.Translate,                     Parameters = new Dictionary<string, string> { { "lang", translateLanguage }, { "text", text } },                     ResultSelector = x => x.Element("text").Value                 };                 string result = api.GetResult(translate);                   richTextBox2.Text = result;                   string adresOutPutFile = string.Format(@"C:Temp{0}.txt", translateLanguage);                 File.WriteAllText(adresOutPutFile, result);             }             catch (Exception ex)             {                 richTextBox3.Text += ex.ToString();                 richTextBox3.Text += "ОШИБКА, НЕВЕРНО ВВЕЛИ ЯЗЫК НА КОТОРЫЙ БУДЕТ ПЕРЕВОДИТСЯ ТЕКСТ В ВАШЕМ ФАЙЛЕ: " + ex.Message;                 // Console.WriteLine("ОШИБКА, НЕВЕРНО ВВЕЛИ ЯЗЫК НА КОТОРЫЙ БУДЕТ ПЕРЕВОДИТСЯ ТЕКСТ В ВАШЕМ ФАЙЛЕ: " + ex.Message);             }           }             enum RequestType         {             Translate,             Detect         }           struct TranslateCommand         {             public RequestType Type;             public Dictionary<string, string> Parameters;             public Func<XElement, string> ResultSelector;         }           class TextTranslationAPI         {               private readonly string Url;             private readonly string Key;             public TextTranslationAPI(string url, string key)             {                 Url = url;                 Key = key;             }                         public TextTranslationAPI() : this(@"https://translate.yandex.net/api/v1.5/tr/translate/", "trnsl.1.1.20180930T111308Z.5e8e8b704ad292c9.f7780e2f1ef62bd0d0301cae74e677ef8a62be7a")             { }               private string GetAction(RequestType type)             {                 switch (type)                 {                     case RequestType.Detect:                         return "detect";                     case RequestType.Translate:                         return "translate";                     default:                         throw new ArgumentOutOfRangeException();                 }             }               public string GetResult(TranslateCommand command)             {                   string strUrl = Url + GetAction(command.Type) + "?key=" + Key;                 foreach (var parameter in command.Parameters)                     strUrl += "&" + parameter.Key + "=" + HttpUtility.UrlEncode(parameter.Value);                                   WebClient webClitnt = new WebClient();                 webClitnt.Encoding = Encoding.UTF8;                   string stringXml = webClitnt.DownloadString(strUrl); // ОШИБКА                 XDocument document = XDocument.Parse(stringXml);                 string textTranslate = command.ResultSelector(document.Root);                   return textTranslate;             }           }               } }

Понравилась статья? Поделить с друзьями:
  • Удаление ошибок оперативной памяти
  • Удаленный сервер возвратил ошибку 403 запрещено тарков
  • Удаление ошибок опель астра h
  • Удаленный сервер возвратил ошибку 403 запрещено dishonored
  • Удаление ошибок на ноутбуке