代码之家  ›  专栏  ›  技术社区  ›  Gordon Truslove

我可以在共享web服务器上使用go来生成HTML吗?

  •  0
  • Gordon Truslove  · 技术社区  · 11 年前

    通常情况下,我可以用C#创建桌面应用程序,也可以将大量相同的C#代码放在共享托管web服务器上的dll中。这节省了我很多编码时间。

    这有什么办法吗? e、 g.在我的托管web服务器上放置某种go dll以生成HTML。

    我知道go不做dll,我也知道用go监听端口80创建一个web服务器是很简单的。但这不是共享web服务器的解决方案。

    这似乎是围棋的一个很好的用途,我很惊讶这可能不可能。

    我应该提一下,如果go代码不必在每次http请求时都重新启动,那就太好了。

    这是我使用C#的方法: 在web服务器上,我添加了如下aspx页面:

    <%@ Page Language="C#" %>
    <%@ Register TagPrefix="MyDLL" Namespace="MyDLL" Assembly="MyDLL"%>
    <MyDLL:Web Runat="Server"/>
    

    它只需加载C#dll即可根据http请求生成HTML。

    1 回复  |  直到 11 年前
        1
  •  1
  •   OneOfOne    11 年前

    首先,您必须设置IIS以使用fastcgi( instructions )然后你可以像平常一样简单地构建一个go web应用程序,而不是使用http.ListenAndServe fcgi.Serve

    Example :

    func hello(w http.ResponseWriter, r *http.Request) {
        io.WriteString(w, "Hello, world of FCGI!")
    }
    
    func main() {
        http.HandleFunc("/hello/", hello)
    
        if err := fcgi.Serve(nil, nil); err != nil {
            log.Fatal("fcgi.Serve: ", err)
        }
    }
    

    但请记住,可能有多个编程实例一直在运行/销毁,所以任何临时数据(内存会话等)都应该存储在memcache或磁盘或数据库上的临时文件中。