Запуск нескольких HTTP-слушателей на IIS с помощью C#.NET 2.0

Вы можете фильтровать и работать с видимыми ячейками, или вы можете избежать удаления строк внутри цикла.

Скажем, например, что у вас есть 500 клеток, которые не равны US. После этого у вас будет 500 экземпляров копирования / вставки & amp; удаления. Это крайне неэффективно.

Вместо этого добавьте целевые ячейки в Union (коллекцию ячеек), а затем вне цикла выполните операции с коллекцией. Независимо от того, сколько строк нацелено, у вас будет только один экземпляр копии, один экземпляр вставки и один экземпляр удаления.

Sub Moving()

Dim cs As Worksheet: Set cs = ThisWorkbook.Sheets("From TaxWise")
Dim ps As Worksheet: Set ps = ThisWorkbook.Sheets("State")
Dim MoveMe As Range, myCell As Range, LR2 As Long

Dim LR As Long: LR = cs.Range("L" & cs.Rows.Count).End(xlUp).Row

For Each myCell In cs.Range("L2:L" & LR)
    If myCell <> "US" Then
        If Not MoveMe Is Nothing Then
            Set MoveMe = Union(MoveMe, myCell)
        Else
            Set MoveMe = myCell
        End If
    End If
Next myCell

If Not MoveMe Is Nothing Then
    LR2 = ps.Range("A" & ps.Rows.Count).End(xlUp).Row
        MoveMe.EntireRow.Copy
        ps.Range("A" & LR2).PasteSpecial xlPasteValues
    MoveMe.EntireRow.Delete
End If

End Sub
6
задан hlovdal 15 June 2009 в 23:12
поделиться

4 ответа

Спасибо за Ваш непосредственный ответ :-)

Номер порта был проблемой. Я использовал номера портов как 8080,8081,8082, и т.д.. Вероятно, эти порты уже использовались.

Я попробовал портами http://localhost:8080 и http://localhost/35124, и это работало.

еще раз спасибо за Ваши ответы.

С уважением,

Хари

2
ответ дан 10 December 2019 в 22:12
поделиться

Разве HttpListener не работает независимо от IIS? Можно ли остановить сервис IIS и видеть ли то, что происходит?

Или возможно порт 8081 используется другой программой или процессом. Я предлагаю попытаться установить порт на другое число. Вы могли открыть командную строку и выполнить команду "netstat", чтобы видеть, используется ли порт прежде, чем запустить Ваши сервисы.

alt text
(источник: googlepages.com)

4
ответ дан 17 December 2019 в 02:35
поделиться

HTTPListener является действительно не частью IIS. Это - просто код C#.

Вы делали это как это?

String[] prefixes = { "http://localhost:8280/", "http://localhost:8281/"};

HttpListener listener = new HttpListener();
listener.Prefixes.Add("http://localhost:8280/");
listener.Start();

1) Если возможно запустить двух HTTP-слушателей на том же IIS в двух различных портах.

Да, это. Но слушатели на IIS не сделаны через код, это через административное средство IIS, таким образом, это, вероятно, не, что Вы пытаетесь сделать. IIS является отдельным от кода c#, которого Вы делаете попытку.

2) Если да, как может мы achecive это?

  • Попробуйте некоторые другие номера портов (как 58 080 и 58081) и попытайтесь заменить "IPAddress" "localhost". Скорее всего, Ваш номер порта используется некоторым другим веб-сервером

3) Есть ли какой-либо другой способ сделать это?

При попытке служить веб-страницам, Вы, вероятно, wan't для создания веб-приложения вместо того, чтобы делать собственный сервер HTTP

При выполнении чего-то пользовательского Вы могли бы хотеть смотреть на WCF (Windows Communication Foundation), поскольку это - новая платформа для сети, сокетов, веб-сервисы и т.д., и это - то, что MS будет использовать продвижение

1
ответ дан 17 December 2019 в 02:35
поделиться

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

1
ответ дан 17 December 2019 в 02:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: