2012-08-19 3 views
5

클라이언트에서 서버로 RPyC를 사용하여 객체를 매개 변수로 전달하려고합니다. 그러나 서버가 객체에 액세스 할 수 없으며 AttributeError를 수신합니다.rpyc에서 객체 전달에 실패했습니다.

서버 코드 : 나는 RPyC 서비스를 사용하고 웹 사이트에 accoding의하고

self._conn = connect(agent_host, agent_port, config = {"allow_public_attrs" : True}) 
return self._conn.root.func(obj) 

returns: AttributeError: cannot access 'name'.

class AgentService(rpyc.Service): 
    def exposed_func(self, obj): 
    return obj.name 

클라이언트 코드이 작동합니다.

아이디어가 있으십니까?

+3

David, 편집 해 주셔서 감사합니다. 훨씬 전문적으로 보입니다. – Ben

답변

5

구성 dict는 클라이언트 측과 서버 측에서 조정해야합니다.

공개 변수 만 액세스해야하는 경우 변경되는 주요 값은 allow_public_attrs : True이고 개인 및 보호 된 변수 및 메소드에 액세스해야하는 경우 (즉 '_'로 시작하는 경우) allow_all_attrs : True입니다. 클라이언트 측에

가 연결 코드는 다음과 같이 위의 문제로 서버 코드에 기록됩니다

server = ThreadedServer(MyService, port = 12345, 
         protocol_config = {"allow_public_attrs" : True}) 

가능한 모든 구성 옵션에 대한 자세한 내용은 다음을 참조하십시오

http://rpyc.sourceforge.net/api/core_protocol.html

관련 문제