It looks like you're creating the share... but there's no listener?
If you don't actually start a listener, there is nothing to connect to and you'll end up getting a 404.
If you look at the full HTTP example, you'll see there is an HTTP server instantiated... that includes a listener:
If you look at the copyto portion of the pastebin example:
...you'll see that it's directly creating a listener:
with zrok.listener.Listener(shr.Token, root) as server:
while not exit_signal.is_set():
conn, peer = server.accept()
with conn:
conn.sendall(data.encode('utf-8'))
If you're looking to just proxy a C# application, you're probably better off using the zrok share CLI... the Python SDK does not include a reverse proxy implementation. If you're using the SDK, it's expected that you're embedding it in an application that wants to communicate on the network directly... not proxy to another application.
If you want a proxy in Python, you'll need to build that yourself.