Проблема запуска Warp, на WAI, в Windows
Я написал простое приложение Hello World для (Warp) на (Wai). Он отлично работает в Ubuntu Linux, как и более сложные приложения. Но я даже не могу запустить приложение Hello World в Windows. Я использую платформу Haskell (установочный файл 2012.2.0.0) в 32-разрядной версии Windows 7 Home Premium SP1.
Это код (который работает в Linux):
{-# LANGUAGE OverloadedStrings #-}
import Network
import Network.Wai
import Network.HTTP.Types (status200)
import Network.Wai.Handler.Warp (run)
-------------------------------------------------------------------------------
application = \_-> return $ responseLBS status200 [("Content-Type", "text/plain")]
"Hello World"
main = withSocketsDo $ do run 3000 application
Это сообщения GHCI после загрузки кода и запуска (main):
Prelude> :l wai_hello_world.hs
[1 of 1] Compiling Main ( wai_hello_world.hs, interpreted )
Ok, modules loaded: Main.
*Main> main
Loading package bytestring-0.9.2.1 ... linking ... done.
Loading package [ **edited**: blah blah blah - other packages - removed for readability]
Loading package warp-1.3.2 ... linking ... done.
После загрузки кода веб-сервер не работает.
Я думаю, что могу столкнуться с какой-то распространенной ошибкой - если да, пожалуйста, дайте мне знать
Заранее спасибо за все отзывы.
(Обновление: как отмечено в ответе ниже, эти ошибки связаны исключительно с действием Ctrl-C, убивающим среду выполнения, а не с неожиданным поведением Wai/Warp в вопросе.)
Если я нажимаю Ctrl-C несколько раз, чтобы всплыть, я получаю следующие сообщения:
NIenttweorrrku.pStoecdk.e t.ace*Main> p: failed (No error) user error (accept: can't perform accept on socket ((AF_INET,Stream,0)) in status Closed) user error (accept: can't perform accept on socket ((AF_INET,Stream,0)) in status Closed) *Main> *Main> user error (accept: can't perform accept on socket ((AF_INE,:Sream,0)) in status Closed) q Leaving GHCi.
2 ответа
Это решило проблему (и я чувствую себя глупо):
- Разрушенный стек, деинсталлированный Haskell Platform 2012.2.0.0 для Windows.
- Установлена последняя версия Haskell Platform 2012.4.0.0 для Windows.
- Установлен пакет / библиотеки (cabal install yesod-platform).
- Утвержден запрос брандмауэра Windows на GHC при запуске кода.
- Код теперь работает как положено. У меня сейчас нет проблем. Возможно, это был брандмауэр.:-S